主要意思就是上面的式子,求幂的和的模,求幂自然是快速幂,这里都带上模,求和的模也可以分开取模。
AC代码:
#include <iostream>
using namespace std;
long long Z,M,H,a,b;
long long quick_mi(long long x,long long y)
{
if(x==0)return 0;
if(y==0)return 1;
if(y%2==0)
{
long long t=quick_mi(x,y/2);
return t*t%M;
}
else{
return quick_mi(x,y-1)*x%M;
}
}
int main(){
cin>>Z;
while(Z--)
{
cin>>M>>H;
long long ans=0;
while(H--)
{
cin>>a>>b;
ans=(ans+quick_mi(a,b))%M;
}
cout<<ans<<endl;
}
return 0;
}