HDU - 1575 Tr A 纯矩阵快速幂
2015-05-18 23:39
525 查看
题目大意:A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973。
解题思路:int型的注意,+= (a * b) % 9973时小心溢出了
解题思路:int型的注意,+= (a * b) % 9973时小心溢出了
[code]#include<cstdio> #include<cstring> using namespace std; #define maxn 10 #define mod 9973 typedef long long ll; struct Matrix{ ll mat[maxn][maxn]; }a, b, tmp; int n, k; Matrix matrixMul(Matrix aa, Matrix bb) { for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) { tmp.mat[i][j] = 0; for(int k = 0; k < n; k++) tmp.mat[i][j] += (aa.mat[i][k] * bb.mat[k][j]) % mod; } return tmp; } void solve() { while(k) { if(k & 1) b = matrixMul(b,a); a = matrixMul(a,a); k >>= 1; } } int main() { int test; scanf("%d", &test); while(test--) { scanf("%d%d", &n, &k); for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) { b.mat[i][j] = 0; scanf("%I64d", &a.mat[i][j]); } for(int i = 0; i < n; i++) b.mat[i][i] = 1; solve(); ll ans = 0; for(int i = 0; i < n; i++) ans += b.mat[i][i]; printf("%I64d\n", ans % mod); } 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——矩阵快速幂
- 九度OJ 1443/HDU 1575 Tr A(矩阵快速幂)
- hdu 1575 Tr A(矩阵快速幂)
- 【HDU】1575 - Tr A(矩阵快速幂)
- hdu1575 Tr A(矩阵快速幂模板题)
- HDU1575--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(矩阵快速幂)
- Tr A HDU - 1575(矩阵快速幂)
- hdu 1575 Tr A (矩阵快速幂入门题)
- HDU 1575-Tr A(矩阵快速幂)