hdu 2817 快速幂入门

来源:互联网 发布:淘宝退货卖家给假地址 编辑:程序博客网 时间:2024/05/22 02:21

点击打开链接

#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;} 


0 0