http://poj.org/problem?id=1995
(A1^B1+A2^B2+ … +AH^BH)mod M.
快速幂简单应用。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
#include <algorithm>
using namespace std;
int t;
int n;
long long mod;
long long A,B;
long long ans;
long long qpow(long long a,long long b){
__int64 ans=1;
while (b){
if (b&1) ans=(ans*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return ans;
}
int main(){
cin >> t;
while (t--){
cin >> mod;
cin >> n;
ans=0;
for (int i=0;i<n;i++){
cin >> A >> B;
ans=(ans+qpow(A,B))%mod;
}
cout << ans << endl;
}
}