hdu 1575 Tr A(矩阵乘法)
2012-09-08 10:03
375 查看
题目分析:很水的矩阵乘法,很久没做了,竟然吧单位矩阵,弄成全是0的了,,,囧呀,
代码:
代码:
#include<iostream> #include<cstdio> #include<memory.h> using namespace std; int n; struct node { int matrix[11][11]; }maze; node operator *(node x,node y) { int i,j,k; node temp; for(i=1;i<=n;i++) for(j=1;j<=n;j++) { temp.matrix[i][j]=0; for(k=1;k<=n;k++) { temp.matrix[i][j]+=x.matrix[i][k]*y.matrix[k][j]; //temp.matrix[i][j]%=9973; } temp.matrix[i][j]=temp.matrix[i][j]%9973; } return temp; } node fun(node x,int k) { if(k==0) { node a; memset(a.matrix,0,sizeof(a.matrix));//矩阵的0次幂为单位矩阵,,,,, for(int i=1;i<=n;i++) a.matrix[i][i]=1; return a; } if(k==1) return x; node temp; temp=fun(x,k/2);//****2/k,弱智呀 if(k%2==1) return temp*temp*x; else return temp*temp; } int main() { int T,k,i,j; scanf("%d",&T); while(T--) { scanf("%d %d",&n,&k); for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&maze.matrix[i][j]); node a=fun(maze,k); int ans=0; for(i=1;i<=n;i++) { ans+=a.matrix[i][i]; //ans%=9973; ans=ans%9973; } printf("%d\n",ans); } return 0; }
相关文章推荐
- HDU 1575 Tr A (矩阵乘法)
- HDU 1575 Tr A (矩阵乘法)
- hdu 1575 Tr A(矩阵乘法快速求幂)
- hdu 1575 Tr A(矩阵快速幂乘法优化算法)
- HDU 1575 Tr A (矩阵乘法)
- hdu 1575 Tr A(矩阵乘法)
- HDU.1575 Tr A ( 矩阵快速幂)
- HDU 1575 Tr A 矩阵快速幂
- hdu 3070 Fibonacci && poj 1575 Tr A(矩阵快速幂模板题)
- 九度OJ 1443/HDU 1575 Tr A(矩阵快速幂)
- HDU 1575 Tr A(矩阵快速幂)
- hdu 1575 Tr A(矩阵高速电源输入)
- hdu 1575 Tr A(矩阵快速幂)
- HDU 1575 Tr A (矩阵快速幂)
- hdu 1575 Tr A 矩阵快速幂
- HDU 1575 Tr A (矩阵快速幂入门)
- hdu-1575-Tr A(矩阵快速幂入门题)
- HDU 1575 Tr A(矩阵快速幂)
- HDU 1575 Tr A【矩阵快速幂取模+求迹】
- hdu 1575 Tr A(矩阵操作入门)