uva 11149 矩阵快速幂 求矩阵1-n次幂的和
来源:互联网 发布:网络信息安全 电子书 编辑:程序博客网 时间:2024/06/06 16:50
#include<cstdio>#include<cstring>#define mod 10using namespace std;int n;struct matrix{int d[50][50];};matrix add(matrix a,matrix b){matrix c;memset(c.d,0,sizeof(c.d));for(int i=0;i<n;i++)for(int j=0;j<n;j++)c.d[i][j]=(a.d[i][j]+b.d[i][j])%mod;return c;}matrix mutl(matrix a,matrix b){matrix c;for(int i=0;i<n;i++)for(int j=0;j<n;j++){c.d[i][j]=0;for(int k=0;k<n;k++)c.d[i][j]=(c.d[i][j]+a.d[i][k]*b.d[k][j])%mod;}return c;}matrix qcal(matrix a,int k){matrix res;for(int i=0;i<n;i++)for(int j=0;j<n;j++)if(i==j) res.d[i][j]=1;else res.d[i][j]=0;while(k){if(k&1)res=mutl(res,a);k>>=1;a=mutl(a,a);}return res;}matrix solve(matrix a,int k){if(k==1)return a;matrix t=solve(a,k/2);matrix res=add(t,mutl(t,qcal(a,k/2)));if(k&1)res=add(res,qcal(a,k));return res;}int main(){int k;while(scanf("%d%d",&n,&k)==2 && n){matrix t;for(int i=0;i<n;i++)for(int j=0;j<n;j++){scanf("%d",&t.d[i][j]);t.d[i][j]%=10;}t=solve(t,k);for(int i=0;i<n;i++){printf("%d",t.d[i][0]);for(int j=0;j<n;j++)printf(" %d",t.d[i][j]);printf("\n");}printf("\n");}}
阅读全文
0 0
- uva 11149 矩阵快速幂 求矩阵1-n次幂的和
- 矩阵快速二分求n次幂
- 求矩阵的n次方 快速幂
- (hdu step 8.3.1)Tr A(矩阵快速幂——求矩阵m的n次幂的迹%k的结果)
- Uva 10655 已知a+b,ab 求a^n+b^n 矩阵快速幂
- 求矩阵的快速幂
- 求矩阵的快速幂
- 矩阵的乘法和矩阵快速幂
- uva 10229 (fib矩阵形式+矩阵快速幂)uva 10518 (fib(n)调用多少次)
- 51nod 1113 矩阵快速幂 (矩阵的n次方)
- 矩阵运算及 快速幂求矩阵
- uva-11149 倍增法矩阵快速幂
- 【矩阵幂的和+矩阵快速幂】Power of Matrix UVA
- 【POJ 3233】矩阵快速幂+二分求等比数列前N项和
- uva 10870(矩阵快速幂)
- uva 12470(矩阵快速幂)
- uva 10698 矩阵快速幂
- 【矩阵快速幂】Recurrences UVA
- Linux系统ELF程序的执行过程
- ubuntu16.04安装matlab glnx64(2016b/2017a)完全方案
- Listview 多条目展示_AsyncTask
- 少见但非常有用的MongoDB命令
- Listview 多条目展示_Application
- uva 11149 矩阵快速幂 求矩阵1-n次幂的和
- 关于通过Ajax解决PHP与JS数据交互问题
- C语言实现简单的注册、登录、退出
- Python技巧
- Listview 多条目展示_MainActivity
- 开源 java CMS
- JSON 数据格式
- (CodeForces
- struts2文件上传和下载