矩阵快速幂
来源:互联网 发布:浪潮软件集团招聘 编辑:程序博客网 时间:2024/05/18 02:17
矩阵乘法
设
代码如下:
long long c[N][N];void times(long long a[N][N],long long b[N][N])//A*=B{ fr(i,1,n) fr(j,1,n) c[i][j]=0; fr(i,1,n) fr(j,1,n) fr(k,1,n) c[i][j]=(c[i][j]+a[i][k]*b[k][j]%mod)%mod; fr(i,1,n) fr(j,1,n) a[i][j]=c[i][j];}
矩阵快速幂
只有行列相等的矩阵才能快速幂。
矩阵乘法有结合律,所以可以得:
练手题
代码如下:
#define mod 1000000007#define N 210long long n,ans[N][N],g[N][N],c[N][N];long long k;void times(long long a[N][N],long long b[N][N]){ fr(i,1,n) fr(j,1,n) c[i][j]=0; fr(i,1,n) fr(j,1,n) fr(k,1,n) c[i][j]=(c[i][j]+a[i][k]*b[k][j]%mod)%mod; fr(i,1,n) fr(j,1,n) a[i][j]=c[i][j];}int main(){ scanf("%lld%lld",&n,&k); k--; fr(i,1,n) fr(j,1,n) { scanf("%lld",&g[i][j]); ans[i][j]=g[i][j]; } while(k) { if(k&1ll) times(ans,g); k>>=1ll; times(g,g); } fr(i,1,n) fr(j,1,n) printf("%lld%c",ans[i][j],j==n?'\n':' '); return 0;}
阅读全文
0 0
- 快速矩阵快速幂
- 转移矩阵+矩阵快速幂
- 矩阵乘法 矩阵快速幂
- 构造矩阵+矩阵快速幂
- 矩阵快速幂,矩阵加法,矩阵乘法
- 快速幂||矩阵快速幂
- 快速幂&矩阵快速幂
- 快速幂,矩阵快速幂
- 快速幂 矩阵快速幂
- 快速幂&矩阵快速幂
- 【快速幂】【矩阵快速幂】
- 快速幂和快速矩阵
- poj3070--矩阵 快速幂
- POJ3233矩阵快速幂
- poj3070Fibonacci 矩阵快速幂
- 矩阵的快速幂
- 矩阵快速幂
- 矩阵的快速幂
- java解压缩文件
- Java 几道常见String面试题
- sqlplus 导出excel&html
- button的操作
- Lua 加载函数require dofile loadfile
- 矩阵快速幂
- 优雅的在通用Adapter的item内部控件监听事件
- HTML5获取地理位置信息
- 设置TextView文本支持长按复制粘贴
- 详说css与预处理器(以及less、sass、stylus的区别)
- 安卓相机使用代码
- 刚开通微博。。。。WEBview设置
- 数据结构课程主页16智11
- 算法系列——二叉树下一个结点