题意:给定n对Ai,Bi,求所有Ai的Bi次方之和对M取模的结果;
思路:二分法求快速幂;
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; __int64 sum,x,y,t; __int64 mod(__int64 a,__int64 b,__int64 c) { if(b==0) return 1%c; if(b==1) return a%c; t=mod(a,b/2,c); t=t*t%c; if(b%2==1) { t=t*a%c; } return t; } int main() { int i,j,k,z,m,n; while(scanf("%d",&z)!=EOF) { while(z--) { sum=0; scanf("%d",&m); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%I64d%I64d",&x,&y); sum+=mod(x,y,m); } sum%=m; printf("%I64d ",sum); } } return 0; }