Hdu 4565 So easy! 2013长沙邀请赛
2013-06-03 21:24
288 查看
So Easy!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 133 Accepted Submission(s): 43
[align=left]Problem Description[/align]
A sequence Sn is defined as:
Where a, b, n, m are positive integers.┌x┐is the ceil of x. For example, ┌3.14┐=4. You are to calculate Sn.
You, a top coder, say: So easy!
[align=left]Input[/align]
There are several test cases, each test case in one line contains four positive integers: a, b, n, m. Where 0< a, m < 215, (a-1)2< b < a2, 0 < b, n < 231.The input will finish with the
end of file.
[align=left]Output[/align]
For each the case, output an integer Sn.
[align=left]Sample Input[/align]
2 3 1 2013
2 3 2 2013
2 2 1 2013
[align=left]Sample Output[/align]
4
14
4
[align=left]Source[/align]
2013
ACM-ICPC长沙赛区全国邀请赛——题目重现
[align=left]Recommend[/align]
zhoujiaqi2010
#include <stdio.h> void mmul(int a[2][2],int b[2][2],int c[2][2],int m) { int d[2][2],i,j,k; for(i=0;i<2;++i) for(j=0;j<2;++j) for(k=d[i][j]=0;k<2;++k) d[i][j]=(d[i][j]+((a[i][k]*b[k][j])%m))%m; for(i=0;i<2;++i) for(j=0;j<2;++j)c[i][j]=d[i][j]; } void mpow(int a[2][2],int b,int c[2][2],int m) { int t[2][2],d[2][2],i,j; for(i=0;i<2;++i) for(j=0;j<2;++j) { d[i][j]=a[i][j]%m; t[i][j]=i==j?1:0; } while(b) { if(b&1) mmul(t,d,t,m); mmul(d,d,d,m); b>>=1; } for(i=0;i<2;++i) for(j=0;j<2;++j) c[i][j]=t[i][j]; } int main() { //freopen("easy.in", "r", stdin); //freopen("testeasy.out", "w", stdout); int a,b,m,n,c[2][2],r,i,j; while(scanf("%d%d%d%d",&a,&b,&n,&m)!=EOF) { c[1][0]=1; c[1][1]=0; c[0][0]=(a<<1)%m; c[0][1]=(b-((a*a)%m))%m; mpow(c,n-1,c,m); r=(((((((c[0][0]*2)%m)*a)%m)+(c[0][1]*2)%m)%m)+m)%m; printf("%d\n",r); } return 0; }
相关文章推荐
- 【构造共轭函数+矩阵快速幂】HDU 4565 So Easy! (2013 长沙赛区邀请赛)
- 2013长沙邀请赛 HDU 4565 So Easy!(矩阵快速幂)
- HDU 4565 -- So Easy! 数学 && 2013 ACM-ICPC 长沙赛区全国邀请赛 A题
- hdu 4565 So Easy! /2013 ACM-ICPC 长沙赛区全国邀请赛A题 矩阵乘法
- HDU 4565 So Easy!(思想+矩阵快速幂)——2013 ACM-ICPC长沙赛区全国邀请赛
- HDU 4565 So Easy!(数学+矩阵快速幂)(2013 ACM-ICPC长沙赛区全国邀请赛)
- HDU 4565 - 2013年长沙邀请赛 A-so easy
- hdu 4565 so easy 线性递推+矩阵乘法+快速幂 2013湖南区域邀请赛
- HDU 4569 Special equations(思维)——2013 ACM-ICPC长沙赛区全国邀请赛
- Hdu 4569 Special equations 2013长沙邀请赛
- Hdu 4575 Changsha Marathon 2013长沙邀请赛
- Hdu 4572 Bottles Arrangement 2013长沙邀请赛
- Hdu 4573 Throw the Stones 2013长沙邀请赛
- Hdu 4571Travel in time2013长沙邀请赛
- HDU 4568 Hunter(最短路径+DP)(2013 ACM-ICPC长沙赛区全国邀请赛)
- HDU - 4571 Travel in time 2013长沙邀请赛
- HDU 4571 Travel in time(最短路径+DP)(2013 ACM-ICPC长沙赛区全国邀请赛)
- HDU 4571 Travel in time 2013 ACM-ICPC长沙赛区全国邀请赛G题
- 2013 长沙邀请赛 HDU 4571 Travel in time(dp)
- HDU 4569 Special equations(枚举+数论)(2013 ACM-ICPC长沙赛区全国邀请赛)