首页 > 其他 > 详细

矩阵快速幂模板

时间:2014-02-28 07:04:25      阅读:428      评论:0      收藏:0      [点我收藏+]

 

bubuko.com,布布扣
struct Matrix
{
    LL mat[MAXN][MAXN];
    int r;
    void init(int n)
    {
        memset(mat,0,sizeof(mat));
        r=n;
    }
};
Matrix matrix_mul(Matrix a,Matrix b)
{
    Matrix ans;
    ans.init(a.r);
    for(int i=0;i<a.r;i++)
        for(int j=0;j<a.r;j++)
            for(int k=0;k<a.r;k++)
                    ans.mat[i][j]+=a.mat[i][k]*b.mat[k][j];
    return ans;
}
Matrix maxtrix_pow(Matrix a,LL n,int r)
{
    Matrix ans;
    ans.initr(r);
    for(int i=0;i<r;i++) ans.mat[i][i]=1;
    while(n)
    {
        if(n&1) ans=matrix_mul(ans,a);
        n>>=1;
        a=matrix_mul(a,a);
    }
    return ans;
}
bubuko.com,布布扣

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

矩阵快速幂模板

原文:http://www.cnblogs.com/zjbztianya/p/3571326.html

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