首页 > 其他 > 详细

矩阵快速幂(模板)

时间:2014-03-26 11:04:21      阅读:488      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣

利用快速幂的思想 根据矩阵的结合律 可以递归二分求解

struct
Mat { int mat[N][N]; }; int n; Mat operator * (Mat a,Mat b) { Mat c; memset(c.mat,0,sizeof(c.mat)); int i,j,k; for(k =0 ; k < n ; k++) { for(i = 0 ; i < n ;i++) { if(a.mat[i][k]==0) continue;//优化 for(j = 0 ;j < n ;j++) { if(b.mat[k][j]==0) continue;//优化 c.mat[i][j] = (c.mat[i][j]+(a.mat[i][k]*b.mat[k][j])%mod)%mod; } } } return c; } Mat operator ^(Mat a,int k) { Mat c; int i,j; for(i =0 ; i < n ;i++) for(j = 0; j < n ;j++) c.mat[i][j] = (i==j); for(; k ;k >>= 1) { if(k&1) c = c*a; a = a*a; } return c; }
bubuko.com,布布扣

矩阵快速幂(模板),布布扣,bubuko.com

矩阵快速幂(模板)

原文:http://www.cnblogs.com/shangyu/p/3620803.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!