思路:快速幂

#include <cstdio> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> using namespace std; unsigned long long Pow(unsigned long long a,unsigned long long b,unsigned long long mod) { unsigned long long ans=1; while(b) { if(b&1) { b--; ans=(ans*a)%mod; } else { b/=2; a=(a*a)%mod; } } return ans; } int main() { int t; scanf("%d",&t); while(t--) { unsigned long long mod; int h; scanf("%lld",&mod); scanf("%d",&h); unsigned long long ans=0; unsigned long long tmp,a,b; for(int i=1;i<=h;i++) { scanf("%llu%llu",&a,&b); tmp=Pow(a,b,mod); ans=(ans+tmp)%mod; } printf("%llu ",ans); } return 0; }