矩阵连乘 模版
2012-09-24 15:04
393 查看
做了一道矩阵连乘模板题。。
重新又复习了下....
贴下代码:
重新又复习了下....
贴下代码:
#include <cstdio> #include <cmath> #include <cstring> #include <iostream> #include <algorithm> #include <map> #include <set> #include <queue> using namespace std; struct matrix { int m[3][3]; }; int n,p; matrix one= { 1,0,0, 0,1,0, 0,0,1 }; matrix ans= { 1,1,0, 1,0,1, 1,0,0 }; matrix init= { 0,0,0, 0,0,0, 0,0,0, }; matrix mul(matrix a,matrix b) { matrix c=init; for(int i=0;i<3;i++) for(int j=0;j<3;j++) { for(int k=0;k<3;k++) c.m[i][j]+=(a.m[i][k]*b.m[k][j])%p; c.m[i][j]%=p; } return c; } matrix matrixpow(int kn,matrix a) { matrix c=one; while(kn>0) { if(kn&1) { c=mul(a,c); } kn=kn>>1; a=mul(a,a); } return c; } int main() { int T; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&p); matrix k; k=matrixpow(n-2,ans); int sum=k.m[1][0]+k.m[2][0]+k.m[0][0]; printf("%d\n",(sum)%p); } }
相关文章推荐
- 模版—矩阵连乘快速幂
- FZU 1061 矩阵连乘
- 动态规划——矩阵连乘的问题
- 动态规划算法之矩阵连乘 及最长公共字符串多种解法源码
- 矩阵连乘
- HDU 1588 斐波那契数列数列变形和矩阵连乘
- 矩阵的连乘
- 基于DP的矩阵连乘问题
- 矩阵连乘详解
- 动态规划之矩阵连乘
- 矩阵连乘ing
- 给定n个矩阵{A1, A2, …,An},其中,Ai与Ai+1是可乘的,计算这n个矩阵的连乘积。从中找出一种乘次数最少的计算次序(矩阵连乘最优顺序Java语言实现
- 矩阵模版(新)
- BZOJ3231(矩阵连乘,稍有点复杂)
- HDU1588(矩阵连乘求和)
- poj 1179 循环dp 类似矩阵连乘
- 算法重拾之路——矩阵连乘问题
- 矩阵连乘最优解---动态规划
- hdu 1005 Number Sequence(矩阵连乘+二分快速求幂)
- 图论专题训练1-D(K步最短路,矩阵连乘)