矩阵快速幂
来源:互联网 发布:淘宝售后可以申请几次 编辑:程序博客网 时间:2024/06/06 13:25
#include<iostream>#include<cstdio>#include<cstring>const int maxn=100+10;#define ll long longconst int b=1000000000+7;using namespace std;ll a[maxn][maxn],s[maxn][maxn],tmp[maxn][maxn];int main(){ int n;ll k; cin>>n>>k; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++){ scanf("%lld",&a[i][j]); s[i][j]=a[i][j]; } k--; while(k){ if(k%2){ memset(tmp,0,sizeof(tmp)); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) for(int k=1;k<=n;k++){ tmp[i][j]+=s[i][k]*a[k][j]; tmp[i][j]%=b; } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++){ s[i][j]=tmp[i][j]; } } memset(tmp,0,sizeof(tmp)); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) for(int k=1;k<=n;k++){ tmp[i][j]+=a[i][k]*a[k][j]; tmp[i][j]%=b; } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++){ a[i][j]=tmp[i][j]%b; } k/=2; } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) printf("%lld%c",s[i][j],j==n?'\n':' '); return 0;}
阅读全文
2 0
- 快速矩阵快速幂
- 转移矩阵+矩阵快速幂
- 矩阵乘法 矩阵快速幂
- 构造矩阵+矩阵快速幂
- 矩阵快速幂,矩阵加法,矩阵乘法
- 快速幂||矩阵快速幂
- 快速幂&矩阵快速幂
- 快速幂,矩阵快速幂
- 快速幂 矩阵快速幂
- 快速幂&矩阵快速幂
- 【快速幂】【矩阵快速幂】
- 快速幂和快速矩阵
- poj3070--矩阵 快速幂
- POJ3233矩阵快速幂
- poj3070Fibonacci 矩阵快速幂
- 矩阵的快速幂
- 矩阵快速幂
- 矩阵的快速幂
- vue.js学习笔记(六)--利用v-model实现父子组件间的双向通信
- Android常规问题总结
- shader新手入门——分享我的shader入门经验
- Codeforces
- Error Back Propagation in BPNeuralNetwork及手写字体识别python版
- 矩阵快速幂
- SVN版本冲突解决详解
- JavaScript HTML DOM 元素(节点)
- Centos Nginx 多php版本
- LeetCode 1. Two Sum--数组中两元素相加为该数值,输出对应的两个索引
- Linux驱动开发之环境配置
- python 包和模块
- POJ 3225 Help with Intervals(开区间和闭区间)
- ES6 环境搭建