这题很水 就是很普通的快速幂取模 二分的原理 水过。。。
#include <iostream> #include<cstdio> #include<cstring> using namespace std; long long modular(long long a,long long b,long long c) { int ans=1; while(b) { if(b&1) ans=ans*a%c; b>>=1; a=a*a%c; } return ans; } int main() { int t,h,m; long long a,b; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&h); long long ans=0; while(h--) { scanf("%lld%lld",&a,&b); ans=(ans+modular(a,b,m))%m; } printf("%lld\n",ans); } return 0; }