题目描述:
http://acm.nyist.net/JudgeOnline/problem.php?pid=420
210 110 2
55385
题目分析:
快速幂+同余定理的问题,虽然已经写了好多次的快速幂但是还是没有记住,每次都是看模板,这次一定记住它。
AC代码:
/**
*快速幂取摸+同余
*/
#include<iostream>
#include<cstdio>
#include<map>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue>
#include<vector>
#include<stack>
#include<cstdlib>
#include<cctype>
#include<cstring>
#include<cmath>
using namespace std;
int mod(int a,int b,int n){
int t = 1;
if (b == 0)
return 1;
if (b == 1)
return a%n;
t = mod(a, b>>1, n);
t = t*t % n;
if (b&1){//b是奇数
t = t*a % n;
}
return t;
}
int main()
{
int t;
cin>>t;
while(t--){
int p,n;
cin>>n>>p;
int res=0;
for(int i=1;i<=n;i++){
int t=mod(i,p,10003);
//cout<<t<<endl;
res=(res%10003+t%10003)%10003;
}
cout<<res<<endl;
}
return 0;
}
原文地址:http://blog.csdn.net/fool_ran/article/details/42498801