矩阵快速幂
来源:互联网 发布:手机游戏双开软件 编辑:程序博客网 时间:2024/06/11 00:35
在讲矩阵快速幂之前,要说清楚矩阵乘法是什么。
矩阵乘法,用来干什么,我这个小蒟蒻并不知道。
但是,有大佬对于他的作用可能有着自己的理解
【看大佬blog】
我这里找的题目是洛谷3390 矩阵快速幂的模板
方法和整数的快速幂是一样的
自己重载一下乘号即可
顺带推荐一个大佬对于矩阵快速幂的理解(%%%songyuchen大佬)
%%%大佬
已经有大佬对于矩阵乘法的方法的讲解了,我就不再多说
直接贴一下矩阵快速幂的代码
#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;#define MAX 101#define MOD (1000000007)long long n,k;struct yl//矩阵 { int n;//大小 long long g[MAX][MAX]; };yl operator*(yl a,yl b)//定义乘法 { int n=a.n; yl cool; memset(cool.g,0,sizeof(cool.g)); for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) for(int k=1;k<=n;++k) cool.g[i][j]=(cool.g[i][j]+1ll*a.g[i][k]*b.g[k][j]%MOD)%MOD; cool.n=n; return cool;}void write(yl a){ int n=a.n; for(int i=1;i<=n;++i) { for(int j=1;j<=n;++j) cout<<a.g[i][j]<<' '; cout<<endl; }}yl Pow(yl a,long long b)//a的b次方{ if(b==1)return a; yl s=Pow(a,b/2); s.n=a.n; s=s*s; if(b&1)s=s*a; return s;}int main(){ cin>>n>>k; yl Six; Six.n=n; for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) cin>>Six.g[i][j]; write(Pow(Six,k)); return 0;}
阅读全文
0 0
- 快速矩阵快速幂
- 转移矩阵+矩阵快速幂
- 矩阵乘法 矩阵快速幂
- 构造矩阵+矩阵快速幂
- 矩阵快速幂,矩阵加法,矩阵乘法
- 快速幂||矩阵快速幂
- 快速幂&矩阵快速幂
- 快速幂,矩阵快速幂
- 快速幂 矩阵快速幂
- 快速幂&矩阵快速幂
- 【快速幂】【矩阵快速幂】
- 快速幂和快速矩阵
- poj3070--矩阵 快速幂
- POJ3233矩阵快速幂
- poj3070Fibonacci 矩阵快速幂
- 矩阵的快速幂
- 矩阵快速幂
- 矩阵的快速幂
- oracle
- HDFS上传下载
- 嵌入式学习笔记(第四天)c语言续
- C语言:min和max头文件
- HBase scan RPC次数计算
- 矩阵快速幂
- Ubuntu Vmtools 安装
- Python-Argparse 脚本参数解析
- SQL数据库 基础语句
- 设计模式--适配器模式--Java实现
- 栈和队列
- 机器学习算法
- 多态测试
- LeetCode 4. Median of Two Sorted Arrays