poj 3323 Matrix Power Series (矩阵乘法 非递归形式)
来源:互联网 发布:新买的被子要洗吗 知乎 编辑:程序博客网 时间:2024/05/18 20:05
为了搞自动机+矩阵的题目,特来学习矩阵快速幂..........非递归形式的求Sum(A+A^2+...+A^k)不是很懂,继续弄懂................不过代码简洁明了很多,亮神很给力
#include <iostream>#include <algorithm>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <vector>#include <set>#include <queue>#include <stack>#include <climits>//形如INT_MAX一类的#define MAX 100005#define INF 0x7FFFFFFF#define REP(i,s,t) for(int i=(s);i<=(t);++i)#define LL long long#define mem(a,b) memset(a,b,sizeof(a))#define mp(a,b) make_pair(a,b)#define L(x) x << 1#define R(x) x << 1 | 1# define eps 1e-5//#pragma comment(linker, "/STACK:36777216") ///传说中的外挂using namespace std;int n,k,m;__int64 a[33][33];__int64 x[66][66],y[66][66];void multi(__int64 x[66][66],__int64 y[66][66]) { // A * B __int64 p[66][66]; memset(p,0,sizeof(p)); int N = n * 2; for(int i=0; i<N; i++) { for(int j=0; j<N; j++) { for(int k=0; k<N; k++) { p[i][j] = (p[i][j] + (x[i][k] * y[k][j]) % m) % m; } } } for(int i=0; i<N; i++) { for(int j=0; j<N; j++) { x[i][j] = p[i][j]; } }}void quickmul(int p) { //将矩阵扩大成2n * 2n for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { y[i+n][j+n] = a[i][j]; x[i][j+n] = a[i][j]; } } for(int i=0; i<n; i++) y[i][i] = 1; for(int i=0; i<n; i++) y[i+n][i] = 1; while(p) { //A ^ p if(p & 1) { multi(x,y); } multi(y,y); p = p >> 1; }}int main() { scanf("%d%d%d",&n,&k,&m); for(int i=0; i<n; i++) { for(int j=0; j<n; j++) { scanf("%d",&a[i][j]); a[i][j] %= m; } } memset(x,0,sizeof(x)); memset(y,0,sizeof(y)); quickmul(k); for(int i=0; i<n; i++) { printf("%d",x[i][0]); for(int j=1; j<n; j++) printf(" %d",x[i][j]); puts(""); } return 0;}
- poj 3323 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 )
- Matrix Power Series(乘法矩阵)
- 矩阵乘法 Matrix Power Series
- POJ 3233 Matrix Power Series 二分+矩阵乘法
- poj 3233 Matrix Power Series(矩阵乘法·二分等比数列)
- 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(矩阵快速幂)
- findByCriteria用法
- cookie 和session 的区别详解
- 游戏逻辑服务器和数据缓存服务器交互设计策略总结
- 解决putty中文乱码
- java 一致性哈希类实例 算法
- poj 3323 Matrix Power Series (矩阵乘法 非递归形式)
- OpenCV学习笔记(十五)——摄像机的标定和3D重建calib3D
- NSUserDefaults存储数据
- 让Extjs加加速
- SQL SERVER中事务日志在修改数据时的角色
- iOS 两个应用之间的切换
- JIG(即时绘图)-直线即时绘图-EntityJig(单实体即时绘图)
- Linq小技巧:日期處理
- HTML,CSS,font-family:中文字体的英文名称 (宋体 微软雅黑)