[HDU1575]Tr A(矩阵乘法)
2016-05-22 19:20
513 查看
题目描述
传送门题意
给出一个矩阵A和整数k,求Ak
代码
#include<iostream> #include<cstring> #include<cstdio> using namespace std; const int Mod=9973; const int max_n=15; int T,n,k,ans; struct hp{int a[max_n][max_n];}st,m,matrix; inline hp cheng(hp a,hp b) { hp ans; memset(ans.a,0,sizeof(ans.a)); for (int i=1;i<=n;++i) for (int j=1;j<=n;++j) for (int k=1;k<=n;++k) ans.a[i][j]=(ans.a[i][j]+a.a[i][k]*b.a[k][j]%Mod)%Mod; return ans; } inline hp matrix_fast_pow(hp a,int p) { hp ans=st; for (;p;p>>=1,a=cheng(a,a)) if (p&1) ans=cheng(ans,a); return ans; } int main() { scanf("%d",&T); while (T--) { scanf("%d%d",&n,&k); memset(st.a,0,sizeof(st.a)); for (int i=1;i<=n;++i) st.a[i][i]=1; for (int i=1;i<=n;++i) for (int j=1;j<=n;++j) scanf("%d",&m.a[i][j]); matrix=matrix_fast_pow(m,k); ans=0; for (int i=1;i<=n;++i) ans=(ans+matrix.a[i][i])%Mod; printf("%d\n",ans); } }
相关文章推荐
- Java中内部类揭秘(一):外部类与非静态内部类的”相互可见性“
- 初探OpenMP
- 判断一个数是否是2的m次方
- css之盒子模型案例
- css之盒子模型案例
- 良好的日志记录规范
- 尽量用CSS来描述修饰页面
- pc网页适配屏幕大小
- Ruby编程中的注释
- 简单算法之冒泡排序(Java)
- WCF 改成 restful api
- 本周学习进度
- ArcGIS Engine开发中利用GP工具时常出现的错误
- bzoj3143【HNOI2013】游走
- 运算符重载加法(单目)
- 单链表排序(冒泡排序法)
- EXPORT_SYMBOL
- ArcGIS Engine开发中利用GP工具时常出现的错误
- JSP9大内置对象及方法
- Android开发之Fragment的生命周期