LightOj 1096 - nth Term (矩阵快速幂,简单)
2014-02-20 20:34
337 查看
题目
View Code
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int num,mod; struct matrix { int a[4][4]; }; matrix multiply(matrix x,matrix y)//矩阵乘法 { matrix temp; for(int i=0;i<num;i++) { for(int j=0;j<num;j++) { int ans=0; for(int k=0;k<num;k++) { ans+=((x.a[i][k]*y.a[k][j])%mod); } temp.a[i][j]=ans%mod; } } return temp; } matrix calc(matrix origin ,matrix answ,int n)//n次矩阵快速幂 { while(n) { if(n%2==1)//原来比赛时一直是这里被我不小心改成了0,怪不得案例一直都过不了 answ=multiply(origin,answ); origin=multiply(origin,origin); n/=2; } return answ; } int main() { int a,b,n,c,t; scanf("%d",&t); for(int id=1;id<=t;id++) { num=4;mod=10007; scanf("%d%d%d%d",&n,&a,&b,&c); matrix origin={1,0,0,0, 0,0,1,0, 0,0,0,1, c,b,0,a}; matrix answ={1,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0}; answ=calc(origin,answ,n-2); printf("Case %d: %d\n",id,answ.a[3][0]); } return 0; }
View Code
相关文章推荐
- Light OJ 1096 nth Term (矩阵快速幂)
- lightoj 1096【矩阵快速幂(作为以后的模板)】
- LightOj 1065 - Number Sequence (矩阵快速幂,简单)
- LightOJ-1096-矩阵快速幂
- LightOJ1132---Summing up Powers (矩阵快速幂+二项式定理(简单推理))
- POJ3734 比矩阵快速幂简单的方法
- LightOJ-1052-矩阵快速幂
- LightOJ - 1132_EXTENDED LIGHTS OUT_杨辉三角&&矩阵快速幂
- 【矩阵快速幂】LightOJ_1132_Summing up Powers
- LightOJ 1132 Summing up Powers(矩阵快速幂)
- LightOJ - 1282Leading and Trailing (快速幂简单数论求幂数前几位)
- ZOJ -- 2317(矩阵快速幂 + 大数简单处理)
- (模板题)sdut 3359 高数Umaru系列(10)——简单题(矩阵快速幂)
- LightOJ 1070 Algebraic Problem (推导+矩阵快速幂)
- HDU3306Another kind of Fibonacci(简单矩阵快速幂)
- 矩阵快速幂,简单粗暴
- hdu 1575 Tr A(矩阵快速幂,简单)
- HDU 2157 How many ways??(简单线性DP | | 矩阵快速幂)
- LightOJ - 1132 Summing up Powers 矩阵快速幂
- LightOJ1006---Hex-a-bonacci(矩阵快速幂)