hdoj1575【矩阵快速幂】
来源:互联网 发布:js替换html标签 编辑:程序博客网 时间:2024/05/07 03:30
题意:非常清晰!
直接搞吧。
#include <iostream>#include <stdio.h>#include <string.h>#include <stack>#include <queue>#include <map>#include <set>#include <vector>#include <math.h>#include <algorithm>using namespace std;#define LL long long#define INF 0x3f3f3f3fconst double pi = acos(-1.0);const int mod =9973;const int N = 20;struct asd{ LL a[N][N]; };int n;asd mul(asd a,asd b){ asd ans; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { ans.a[i][j]=0; for(int k=1;k<=n;k++) { ans.a[i][j]=(ans.a[i][j]+a.a[i][k]*b.a[k][j])%mod; } } } return ans;}asd quickmul(asd z,int g){ asd ans; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(i==j) ans.a[i][j]=1; else ans.a[i][j]=0; } } while(g) { if(g%2) { ans=mul(ans,z); } g/=2; z=mul(z,z); } return ans;}int main(){ int t; int i,j,k; asd s; scanf("%d",&t); while(t--) { asd A; scanf("%d%d",&n,&k); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { scanf("%lld",&A.a[i][j]); } } s=quickmul(A,k); LL ans=0; for(i=1;i<=n;i++) { ans+=s.a[i][i]; } printf("%lld\n",ans%mod); } return 0;}
0 0
- hdoj1575【矩阵快速幂】
- 快速矩阵快速幂
- 转移矩阵+矩阵快速幂
- 矩阵乘法 矩阵快速幂
- 构造矩阵+矩阵快速幂
- 矩阵快速幂,矩阵加法,矩阵乘法
- 快速幂||矩阵快速幂
- 快速幂&矩阵快速幂
- 快速幂,矩阵快速幂
- 快速幂 矩阵快速幂
- 快速幂&矩阵快速幂
- 【快速幂】【矩阵快速幂】
- 快速幂和快速矩阵
- poj3070--矩阵 快速幂
- POJ3233矩阵快速幂
- poj3070Fibonacci 矩阵快速幂
- 矩阵的快速幂
- 矩阵快速幂
- 如何解决威利430喷码机重启问题。
- snoopy
- 1741.Jaunt around the Zhuhai Campus
- 为什么MVC 不是设计模式
- 基数排序
- hdoj1575【矩阵快速幂】
- Android——长度单位辨析
- check whether edge in face indices.
- CentOS 7 开启端口
- Hihocoder 1288
- 喷码机工作原理
- hdu 5137(简单数学题)
- 今天看了好多东西,主要发现了一个很好的网站叫慕课网
- Java多线程基础-3-基础延伸