题目链接:http://poj.org/problem?id=1995
题意:计算(A1B1+A2B2+ ... +AHBH)mod M.
解题思路:快速幂运算
#include <iostream>
using namespace std;
long long mod_pow(long long x,long long n,long long mod)
{
long long ans;
if(n==0)
return 1;
ans=mod_pow(x*x%mod,n/2,mod);
if(n&1)
ans=ans*x%mod;
return ans;
}
int main()
{
int z;
cin>>z;
while(z--)
{
int M,H;
cin>>M;
cin>>H;
int A,B;
long long ans=0,ans1=0;
while(H--)
{
cin>>A>>B;
ans=mod_pow(A,B,M);
ans1+=ans;
}
ans1=ans1%M;
cout<<ans1<<endl;
}
return 0;
}