矩阵乘法 Matrix Power Series
来源:互联网 发布:日期提醒软件 编辑:程序博客网 时间:2024/06/07 03:26
这题关键就是矩阵的快速幂,和如何快速求和,这两点都是由二分法来实现的,求和的二分法就是把一段和看成前半段和后半段,求和就是求前半段的和,加上前半段的和乘以一个原数组的(k/2或k/2+1)次方,这样一直递归到1,再返回就可以求出解了。
#include <stdio.h>#include <string.h>struct node{int a[35][35];node(){memset(a,0,sizeof(a));};}plus,init;int n,k,m;node mul(node p1,node p2){node p3;int i,j,l;for(i=0;i<n;i++)for(j=0;j<n;j++)for(l=0;l<n;l++){p3.a[i][j]=(p3.a[i][j]+p1.a[i][l]*p2.a[l][j])%m;}return p3;}node add(node p1,node p2){node p3;int i,j;for(i=0;i<n;i++)for(j=0;j<n;j++){p3.a[i][j]=(p1.a[i][j]+p2.a[i][j])%m;}return p3;}node multi(int k1){node init1=init,plus1=plus;while(k1){if(k1&1){init1=mul(init1,plus1);}k1>>=1;plus1=mul(plus1,plus1);}return init1;}node solve(int k){if(k==1)return plus;if(k&1){node tmp=solve(k/2);node tmpk=multi(k/2+1);return add(tmpk,add(tmp,mul(tmp,tmpk)));}else{node tmp=solve(k/2);node tmpk=multi(k/2);return add(tmp,mul(tmp,tmpk));}}int main(){scanf("%d%d%d",&n,&k,&m);int i,j;for(i=0;i<n;i++)for(j=0;j<n;j++){scanf("%d",&plus.a[i][j]);plus.a[i][j]=(plus.a[i][j])%m;}for(i=0;i<n;i++){init.a[i][i]=1;}node ans=solve(k);for(i=0;i<n;i++){for(j=0;j<n-1;j++)printf("%d ",ans.a[i][j]);printf("%d\n",ans.a[i][j]);}return 0;}
1 0
- 矩阵乘法 Matrix Power Series
- 3233 Matrix Power Series 矩阵乘法
- Matrix Power Series----矩阵乘法(二分)
- poj 3233 Matrix Power Series(矩阵乘法)
- Matrix Power Series(乘法矩阵)
- poj 3233 Matrix Power Series 矩阵乘法
- Poj 3233 Matrix Power Series(矩阵乘法)
- POJ 3233 Matrix Power Series 二分+矩阵乘法
- poj 3233 Matrix Power Series(矩阵乘法)
- poj 3233 Matrix Power Series(矩阵乘法·二分等比数列)
- POJ 3233 Matrix Power Series(矩阵乘法)
- 矩阵乘法(POJ 3233 Matrix Power Series )
- poj 3323 Matrix Power Series (矩阵乘法 非递归形式)
- Matrix Power Series 矩阵乘法 二分快速幂http://poj.org/problem?id=3233
- POJ 3233 Matrix Power Series (矩阵乘法+快速幂+等比二分求和) -
- 【POJ 3233】【二分+矩阵乘法】Matrix Power Series【求S = A + A2 + A3 + … + Ak】
- poj 3233 Matrix Power Series(矩阵运算)
- poj 3233 --- Matrix Power Series (二分,矩阵)
- JQuery(入门三)
- bjfu1069格式化数字
- Java常见的四种引用
- 破解 idea 2016
- PAT甲级练习题A1023. Have Fun with Numbers (20)
- 矩阵乘法 Matrix Power Series
- C++中函数默认参数匹配问题
- redis各类型实现&命令 笔记
- ZooKeeper自定义数据日志目录
- android 关机充电 充电动画 从入门到精通
- Android.mk初识
- Android root相关材料
- PHPCMS网站登陆增加点触验证码
- 12、canvas标签之阴影