【矩阵快速幂】poj3233 Matrix Power Series
来源:互联网 发布:php打开服务器本地程序 编辑:程序博客网 时间:2024/05/16 01:14
算是比较简单的一道题目,可以练一下矩阵快速幂的的基本算法。
废话不多说,直接上代码。
#include<iostream>using namespace std;struct MATRIX{int matrix[31][31];};MATRIX matrix_mul(MATRIX a,MATRIX b);MATRIX matrix_add(MATRIX a,MATRIX b);MATRIX matrix_mi(MATRIX ma,int p);MATRIX calculate(MATRIX ma,int p);int n,k,m;MATRIX ori;int main(){cin>>n>>k>>m;for(int i=0;i<n;i++)for(int j=0;j<n;j++)cin>>ori.matrix[i][j];ori=calculate(ori,k);for(int i=0;i<n;i++){cout<<ori.matrix[i][0];for(int j=1;j<n;j++)cout<<" "<<ori.matrix[i][j];cout<<endl; }//system("pause");return 0;}MATRIX matrix_mi(MATRIX ma,int p){MATRIX tmp;if(p==1)return ma;tmp=matrix_mi(ma,p/2);tmp=matrix_mul(tmp,tmp);if(p%2==1)tmp=matrix_mul(tmp,ma);return tmp;}MATRIX matrix_add(MATRIX a,MATRIX b){MATRIX tmp;for(int i=0;i<n;i++)for(int j=0;j<n;j++)tmp.matrix[i][j]=(a.matrix[i][j]+b.matrix[i][j])%m;return tmp;}MATRIX matrix_mul(MATRIX a,MATRIX b){MATRIX tmp;for(int i=0;i<n;i++)for(int j=0;j<n;j++)tmp.matrix[i][j]=0;for(int i=0;i<n;i++)for(int j=0;j<n;j++)for(int k=0;k<n;k++){tmp.matrix[i][j]+=(a.matrix[i][k]*b.matrix[k][j])%m;tmp.matrix[i][j]%=m;}return tmp;}MATRIX calculate(MATRIX ma,int p){MATRIX tmp,tmp1,tmp2;if(p==1)return ma;if(p%2==0){tmp=matrix_mi(ma,p/2);tmp1=calculate(ma, p/2);tmp2=matrix_mul(tmp,tmp1);tmp=matrix_add(tmp1,tmp2);//return tmp;}else if(p%2==1){tmp=calculate(ma,p-1);tmp1=matrix_mul(ma,tmp);tmp=matrix_add(ma,tmp1);//return tmp;}return tmp;}
- 【矩阵快速幂】poj3233 Matrix Power Series
- poj3233 - Matrix Power Series-矩阵快速幂
- poj3233 Matrix Power Series,矩阵快速幂
- POJ3233 Matrix Power Series【矩阵快速幂】
- poj3233 Matrix Power Series(矩阵快速幂)
- 【poj3233】Matrix Power Series 矩阵+快速幂
- Matrix Power Series poj3233矩阵快速幂
- [poj3233] Matrix Power Series 矩阵快速幂
- Matrix Power Series(poj3233快速幂+矩阵二分幂+分治)
- POJ3233 - Matrix Power Series - 二分矩阵快速幂
- POJ3233---Matrix Power Series(矩阵快速幂+二分)
- POJ3233 Matrix Power Series 矩阵快速幂+二分求和
- poj3233 Matrix Power Series (矩阵快速幂+二分)
- 【poj3233】Matrix Power Series(递推+矩阵快速幂)
- 【poj3233】Matrix Power Series——矩阵快速幂
- poj3233 Matrix Power Series (二分+矩阵+快速幂)
- POJ3233---Matrix Power Series (矩阵快速幂(升级):矩阵套矩阵)
- poj3233 Matrix Power Series 矩阵快速幂 坑死我了
- 如何在report中使用fnd_profile.value ,srw.user_exit
- ISO14064推行目的及意义
- HTTP返回码总结
- TI C674x和OMAP-L1x DSP系统框架以及编程优化指南
- oracle实战第三天--事务处理与函数
- 【矩阵快速幂】poj3233 Matrix Power Series
- 未解决的问题
- 杂
- android:windowSoftInputMode 介绍
- oracle实战第四天--数据库(表)的逻辑备份与恢复
- TI DSP平台(Sitara系列ARM,ARM+DSP的Integra,Davinci DM系列)以及芯片应用手册开发指南
- Linux 平台 Physical Standby 搭建ADG
- 关于从基于Multi-Org的视图中查询数据的问题(轉)
- AS3 3D 电子相册 (源码+注释+测试+运行效果图)