Marshal's Confusion III | ||||||
| ||||||
Description | ||||||
Marshallike to solve acm problems.But they are very busy, one day they meet a problem. Given three intergers a,b,c, the task is to compute a^(b^c))%317000011. so the turn to you for help. | ||||||
Input | ||||||
The first line contains an integer T which stands for the number of test cases. Each case consists of three integer a, b, c seperated by a space in a single line. 1 <= a,b,c <= 100000 | ||||||
Output | ||||||
For each case, print a^(b^c)%317000011 in a single line. | ||||||
Sample Input | ||||||
2 1 1 1 2 2 2 | ||||||
Sample Output | ||||||
1 | ||||||
Author | ||||||
王勇 |
分析:
快速幂模板,只不过是a^b^c ,稍微修改一下就OK啦~~~
#include<iostream>
#include<string.h>
#define m 317000011
using namespace std;
int main()
{
long long res,tmp,a,b,c; int n;
cin>>n;
while(n--)
{
cin >> a>> b >> c;
res=1;
while(c--)
{
tmp = b;res = 1;
while(tmp)
{
if(tmp & 1)
res = ((a%m)*(res%m))%m;
a = ((a%m)*(a%m))%m;
tmp >>= 1;
}
a = res;
}
cout<<a<<endl;
}
return 0;
}
结果:
60612 | 1251 | Accepted | G++ | 716ms | 1128k | A smile that I would never see again ! | 556B | 2013-03-13 00:04:34 |