9 条题解

  • 2
    @ 2023-1-25 14:01:17

    【模板】矩阵乘法

    这道题是一道模板题,还不会的同志们看下面这张图:

    image


    比如说: 给出一个矩阵A: 1 2 3 3 2 1 再给出矩阵B: 1 1 2 2 3 3 根据公式得出矩阵C: 14 14 10 10

    过程如下

    image

    那么按照公式模拟即可,别忘了取模!(尽量一边算一边mod 代码:

    #include <bits/stdc++.h>
    using namespace std;
    long long A[1114][1114],B[1114][1114],C[1114][1114];
    const long long mod=1000000007;
    int main(){
    int n,m,k;
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++){
    for(int j=1;j<=m;j++){
    cin>>A[i][j];
    }
    }
    for(int i=1;i<=m;i++){
    for(int j=1;j<=k;j++){
    cin>>B[i][j];
    }
    }
    for(int i=1;i<=n;i++){
    for(int j=1;j<=k;j++){
    long long sum=0;
    for(int l=1;l<=m;l++){
    sum=(sum+(A[i][l]*B[l][j]+mod)%mod+mod)%mod;
    }
    C[i][j]=sum%1000000007;
    //cout<<sum<<" ";
    }
    //cout<<endl;
    }
    //if(you use the grey one)return 0 here
    for(int i=1;i<=n;i++){
    for(int j=1;j<=k;j++){
    cout<<C[i][j]<<" ";
    }
    cout<<endl;
    }
    return 0;
    

    完结撒花!!!

    信息

    ID
    60
    时间
    2000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    631
    已通过
    159
    上传者