zoukankan      html  css  js  c++  java
  • Matrix Power Series

    include

    include

    include

    include

    //#define int long long
    using namespace std;
    struct Matrix{
    int rec[40][40];
    } uni,a;
    struct Ma2{
    Matrix rec[5][5];
    } org,ans;
    int n,k,m;
    Matrix zero;
    Ma2 z;
    Matrix tim(Matrix x,Matrix y){
    // cout<<"fsdsdf";
    Matrix tem=zero;
    for(int i=1;i<=n;++i){
    for(int j=1;j<=n;++j){
    for(int k=1;k<=n;++k){
    tem.rec[i][j]+=(x.rec[i][k]%m)*(y.rec[k][j]%m);
    tem.rec[i][j]%=m;
    }
    }
    }
    return tem;
    }
    Matrix pluss(Matrix x,Matrix y){
    for(int i=1;i<=n;++i){
    for(int j=1;j<=n;++j){
    x.rec[i][j]+=y.rec[i][j];
    x.rec[i][j]%=m;
    }
    }
    return x;
    }
    void print(Matrix x){
    for(int i=1;i<=n;++i){
    for(int j=1;j<=n;++j){
    printf("%lld",x.rec[i][j]%m);
    if(j!=n){
    printf(" ");
    }
    }
    cout<<endl;
    }
    return ;
    }
    Ma2 mul(Ma2 x,Ma2 y){
    Ma2 tem;
    for(int i=1;i<=3;++i){
    for(int j=1;j<=3;++j){
    for(int k=1;k<=3;++k){
    tem.rec[i][j]=pluss(tem.rec[i][j],tim(x.rec[i][k],y.rec[k][j]));
    }
    }
    }
    return tem;
    }
    signed main(){
    scanf("%lld%lld%lld",&n,&k,&m);
    for(int i=1;i<=n;++i){
    uni.rec[i][i]=1;
    for(int j=1;j<=n;++j){
    scanf("%lld",&a.rec[i][j]);
    a.rec[i][j]%=m;
    }
    }
    org.rec[1][1]=a;org.rec[1][3]=org.rec[2][1]=org.rec[3][3]=uni;
    if(k1){
    print(a);
    return 0;
    }
    if(k
    2){
    print(pluss(tim(a,a),a));
    return 0;
    }
    k=k-2;
    ans.rec[1][1]=tim(a,a);
    ans.rec[2][1]=a;
    ans.rec[3][1]=a;
    Ma2 tem=org;
    k--;
    while(k){
    if(k&1){
    tem=mul(tem,org);
    }
    k>>=1;
    org=mul(org,org);
    }
    print(mul(tem,ans).rec[1][1]);
    return 0;
    }

  • 相关阅读:
    二维数组中的查找
    浅析Java的Object类
    Alan Turing的纪录片观后感
    近期学习docker遇到的一些问题
    eclipse(STS)安装jd-eclipse插件实现查看API源代码功能
    deepin配置Oracle JDK
    两个有序链表的合并
    Maven 项目中各包单独打成jar包
    一次性密码 && 身份认证三要素
    HTTPS工作流程
  • 原文地址:https://www.cnblogs.com/For-Miku/p/14423026.html
Copyright © 2011-2022 走看看