【POJ】[1995]Raising Modulo Numbers
题目大意:
有的人爱看片儿、有的人爱在地窖里造原子弹、有的人爱用Windows,我爱计算(A1B1+A2B2+ … +AHBH)mod M
由题目所说 直接用快速幂计算就好
根据同余定理进行取模计算
PS:世界上怎么会有这种人-.-
#include<stdio.h>
int pow(int a,int b,int m) {
__int64 r=1,t=a;
while(b) {
if(b&1)
r=r*t%m;
t=t*t%m;
b>>=1;
}
return (int)r;
}
int main() {
int T;
scanf("%d",&T);
while(T--) {
int M;
scanf("%d",&M);
int n;
scanf("%d",&n);
__int64 sum=0;
while(n--) {
int a,b;
scanf("%d %d",&a,&b);
sum=(sum+pow(a,b,M))%M;
}
printf("%lld\n",sum);
}
return 0;
}