hdu 1575 矩阵快速幂模板
2014-10-30 12:48
387 查看
#include "iostream" #include "vector" #include "cstring" using namespace std; typedef unsigned long int ULL; typedef vector<ULL> vec; typedef vector<vec> mat; const ULL P=9973; int n,m; mat mul(mat &A,mat &B) //return A*B { mat C(A.size(),vec(B[0].size())); for (int i=0;i<(int)A.size();i++) { for (int k=0;k<(int)B.size();k++) { for (int j=0;j<(int)B[0].size();j++) { C[i][j]=(C[i][j]+A[i][k]*B[k][j])%P; } } } return C; } mat m_pow(mat A,int m) //return A^m { mat B(A.size(),vec(A.size())); for (int i=0;i<(int)A.size();i++) B[i][i]=1; while (m>0) { if (m&1) B=mul(B,A); A=mul(A,A); m>>=1; } return B; } int main() { int T; cin>>T; while (T--) { cin>>n>>m; mat A(n,vec(n)); for (int i=0;i<n;i++) for (int j=0;j<n;j++) cin>>A[i][j]; A=m_pow(A,m); ULL ans=0; for (int i=0;i<n;i++) { ans+=A[i][i]; ans=ans%P; } cout<<ans<<endl; } return 0; }
相关文章推荐
- hdu1575 Tr A(矩阵快速幂模板题)
- HDU1575[矩阵快速幂]模板
- hdu 3070 Fibonacci && poj 1575 Tr A(矩阵快速幂模板题)
- hdu 1575 矩阵快速幂模板题
- 矩阵快速幂模板HDU——1575
- hdu 1575 求一个矩阵的k次幂 再求迹 (矩阵快速幂模板题)
- hdu 4965 Fast Matrix Calculation【矩阵快速幂模板】
- HDU 1575-Tr A(矩阵快速幂)
- hdu 1575 Tr A (矩阵快速幂入门题)
- hdu 1575 Tr A(矩阵快速幂,简单)
- hdu1575 Tr A(矩阵快速幂)
- HDU 1575 Tr A (矩阵快速幂)
- 【矩阵快速幂】hdu 1575
- hdu 1575 Tr A(裸的矩阵快速幂)
- hdu 1575(矩阵快速幂)
- 【矩阵模板】【hdu 1575】Tr A
- hdu 1575 矩阵快速幂
- HDU 1757,1575,2604,2256 矩阵快速幂总结
- HDU 1575-Tr A (矩阵快速幂裸题)
- HDU 1575 Tr A(矩阵快速幂 水 入门)