• luoguP3390(矩阵快速幂模板题)


    链接:https://www.luogu.org/problemnew/show/P3390

    题意:矩阵快速幂模板题,思路和快速幂一致,只需提供矩阵的乘法即可。

    AC代码:

    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    typedef long long LL;
    
    const int MOD=1e9+7;
    int n;
    LL k;
    
    struct Mat{
        LL m[105][105];
    }a,e;
    
    Mat mul(Mat& x,Mat& y){
        Mat res;
        memset(res.m,0,sizeof(res.m));
        for(int i=1;i<=n;++i)
            for(int j=1;j<=n;++j)
                for(int l=1;l<=n;++l){
                    res.m[i][j]+=x.m[i][l]*y.m[l][j]%MOD;
                    res.m[i][j]%=MOD;
                }
        return res;
    }
    
    Mat qpow(Mat& x,LL k){
        Mat ans=e;
        while(k){
            if(k&1) ans=mul(ans,x);
            x=mul(x,x);
            k>>=1;
        }
        return ans;
    }
    
    int main(){
        scanf("%d%lld",&n,&k);
        for(int i=1;i<=n;++i)
            for(int j=1;j<=n;++j)
                scanf("%lld",&a.m[i][j]);
        for(int i=1;i<=n;++i)
            e.m[i][i]=1;
        Mat ans=qpow(a,k);
        for(int i=1;i<=n;++i){
            for(int j=1;j<=n;++j)
                printf("%lld ",ans.m[i][j]);
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    猫眼电影面试经历
    北京市-钟鼓楼
    vipkid 面试经历
    转转面试经历
    二维数组中的查找
    不用除法来实现两个正整数的除法
    牛客网面试经历
    9. Palindrome Number
    Spring 简介
    mysql8 安装配置教程
  • 原文地址:https://www.cnblogs.com/FrankChen831X/p/11204151.html
Copyright © 2020-2023  润新知