POJ3233
来源:互联网 发布:美人一笑也倾城网络剧 编辑:程序博客网 时间:2024/06/08 15:44
#include <iostream>#include <cstdio>#include <cstring>using namespace std;struct matrix{int a[32][32];};int m,n;matrix Sum(matrix x,matrix y){matrix temp;memset(temp.a,0,sizeof(temp.a));int i,j,k;for(i=0;i<n;i++){for(j=0;j<n;j++){for(k=0;k<n;k++){temp.a[i][j]=(temp.a[i][j]+x.a[i][k]*y.a[k][j]%m)%m;}}}return temp;}matrix Add(matrix x,matrix final){int i,j;matrix temp;for(i=0;i<n;i++){for(j=0;j<n;j++){temp.a[i][j]=(final.a[i][j]+x.a[i][j])%m;} } return temp;}matrixMul(matrix c,int num){matrix origin ;int i,j;memset(origin.a,0,sizeof(origin.a));for(i=0;i<n;i++)origin.a[i][i]=1;while(num!=0){if(num&1)origin=Sum(origin,c);c=Sum(c,c);num>>=1;}return origin;}matrix Num(matrix x,int k){matrix temp;int i;if(k==1)return x;memset(temp.a,0,sizeof(temp.a));for(i=0;i<n;i++)temp.a[i][i]=1;temp=Add(temp,Mul(x,k>>1));temp = Sum(temp,Num(x,k>>1)) ;if ( k&1 ) temp = Add(temp,Mul(x,k)) ; return temp ;}int main(){int i,j,k;matrix temp;while(~scanf("%d",&n)){scanf("%d%d",&k,&m);for(i=0;i<n;i++){for(j=0;j<n;j++){scanf("%d",&temp.a[i][j]);}} temp=Num(temp,k);for(i=0;i<n;i++){for(j=0;j<n;j++){if(j==0){printf("%d",temp.a[i][j]);}else printf(" %d",temp.a[i][j]);}printf("\n");}}return 0;}
0 0
- POJ3233
- poj3233
- poj3233
- POJ3233
- POJ3233
- poj3233
- POJ3233矩阵快速幂
- poj3233 - Matrix Power Series
- POJ3233 Matrix Power Series
- POJ3233 矩阵幂求和
- poj3233——矩阵
- poj3233 Matrix Power Series
- 矩阵快速幂--poj3233
- poj3233-矩阵构造
- POJ3233 Matrix Power Series
- poj3233 hdu 1588 (矩阵)
- 快速矩阵幂POJ3233
- POJ3233解题报告
- 故事讲解:我是一个线程
- 求解逆序数问题
- POJ3070
- HashMap的indexFor方法
- CodeForces - 660C Hard Process (二分)好题
- POJ3233
- 模拟器综合症
- myid文件缺失导致zookeeper无法启动(myid file is missing)
- 操作系统
- leetcode——18——4Sum
- PHP_CodeSniffer的下载和使用
- 读《杀人之门》
- 使用 Sublime + PlantUML 高效地画图
- 【c语言】用辗转相除法求最大公约数和最小公倍数