标签:
Time Limit: 1000MS | Memory Limit: 30000K | |
Total Submissions: 6347 | Accepted: 3740 |
Description
Input
Output
(A1B1+A2B2+ ... +AHBH)mod M.
Sample Input
3 16 4 2 3 3 4 4 5 5 6 36123 1 2374859 3029382 17 1 3 18132
Sample Output
2 13195 13
Source
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 #include<queue> 7 #include<cstdlib> 8 #include<iomanip> 9 #include<cassert> 10 #include<climits> 11 #define maxn 50001 12 #define F(i,j,k) for(int i=j;i<=k;i++) 13 #define M(a,b) memset(a,b,sizeof(a)) 14 #define FF(i,j,k) for(int i=j;i>=k;i--) 15 #define inf 0x7fffffff 16 #define p 23333333333333333 17 using namespace std; 18 int read(){ 19 int x=0,f=1;char ch=getchar(); 20 while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();} 21 while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();} 22 return x*f; 23 } 24 int m,h; 25 long long ans; 26 long long kuaisumi(long long a,long long n) 27 { 28 long long ans=1; 29 while(n) { 30 if(n&1) ans=(ans*a)%m; 31 a=(a*a)%m; 32 n>>=1; 33 } 34 return ans; 35 } 36 int main() 37 { 38 int t; 39 cin>>t; 40 while(t--){ 41 ans=0; 42 cin>>m>>h; 43 for(int i=0;i<h;i++) 44 { 45 long long a,b; 46 cin>>a>>b; 47 ans=(ans+kuaisumi(a,b))%m; 48 } 49 cout<<ans<<endl; 50 } 51 return 0; 52 }
poj 1995 Raising Modulo Numbers 题解
标签:
原文地址:http://www.cnblogs.com/SBSOI/p/5638101.html