POJ 1995 Raising Modulo Numbers
题意:给定M和多组Ai、Bi,求公式(A1B1+A2B2+ ... +AHBH)mod M。
思路:快速幂O(logn)模板~
题目链接:http://poj.org/problem?id=1995
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <algorithm> 5 #include <string> 6 #include <iostream> 7 using namespace std; 8 9 long long quickpow(long long m,long long n,long long k){ 10 long long b=1; 11 while(n>0){ 12 if(n&1) 13 b=(b*m)%k; 14 n=n>>1 ; 15 m=(m*m)%k; 16 } 17 return b; 18 } 19 20 int main(){ 21 22 // freopen("data.in","r",stdin); 23 // freopen("data.out","w",stdout); 24 25 long long n,t,a,b,i,m; 26 scanf("%lld",&n); 27 while(n--){ 28 scanf("%lld%lld",&m,&t); 29 long long sum=0; 30 while(t--){ 31 scanf("%lld%lld",&a,&b); 32 sum+=quickpow(a,b,m); 33 sum%=m; 34 } 35 printf("%lld\n",sum); 36 } 37 return 0; 38 }