hdu 2817 快速幂入门
2016-07-17 21:38
211 查看
点击打开链接
#include <iostream> #include <algorithm> #include <cstdio> #include <vector> #include <cstring> #include <queue> using namespace std; const int M = 10010; const int Mod=200907; typedef long long LL; LL pow(LL x,LL n) //二分快速幂 { if(n==0) return 1; if(n%2) // a^n %c = a^n-1*a %c { return pow(x,n-1)*x%Mod; } else // a^n %c = (a^n/2 * a^n/2) %c { LL a=pow(x,n/2); return a*a%Mod; } } int main() { int t; cin>>t; while(t--) { LL a,b,c,k; cin>>a>>b>>c>>k; if(b-a==c-b) { LL d=c-b; LL ans; ans=(a%Mod+((k-1)*d)%Mod)%Mod; cout<<ans<<endl; } else { LL q=b/a; LL ans=c; // (a*b) (a%c * b%c) 同余c cout<<(c%Mod*pow(q,k-3)%Mod)%Mod<<endl;//快速幂取模 } } return 0; }
相关文章推荐
- 垃圾收集器与内存分配策略
- 如何在CSDN博客中的所贴的代码进行【代码块】显示
- CSS设置文字颜色
- 数据分析实例--兰州二手房数据分析(一)
- LeetCode:Valid Sudoku与Sudoku Solver
- android数据库版本升级,在onUpgrade方法如何写,防止跨级重新创建数据表而报错
- arm常见的总线类型
- TVDI中线性拟合干湿边的步骤
- 数据结构知识点
- 神奇的java socket编程
- Leetcode解题笔记(Linked List)
- Ural Championship 2013 H E-Lite
- python matplotlib绘图使用中文字体
- 认识Hibernate
- 深入分析javascript中的错误处理机制
- hdu3068 最长回文
- 分享几种移动端标准头
- Android开发之实现两个手机之间的通讯
- linux下zookeeper安装与测试
- Spark 官方文档(2)——集群模式