#include <bits/stdc++.h> using namespace std; #define IOS ios::sync_with_stdio(false), cin.tie(0); #define rep(i, n) for (int i = 0; i < (n); i++) typedef long long LL; typedef pair<int, int> PII; typedef vector<int> vi; //const int N=; int x, y, z; int main() { IOS cin>>x>>y>>z; vector<vi> a(x, vi(y)), b(y, vi(z)); vector<vi> c(x, vi(z)); for(int i=0; i<x; i++) for(int j=0; j<y; j++) cin>>a[i][j]; for(int i=0; i<y; i++) for(int j=0; j<z; j++) cin>>b[i][j]; for(int i=0; i<x; i++) for(int j=0; j<z; j++) for(int k=0; k<y; k++) c[i][j]+=a[i][k]*b[k][j]; for(int i=0; i<x; i++) for(int j=0; j<z; j++) cout<<c[i][j]<<" \n"[j==z-1]; return 0; }
矩阵乘法,线性代数里的公式,对照不难发现新矩阵的一个元素是原来两个矩阵的第i行和第j列分别相乘求和
模拟即可,记得c[i][j]是+=a[i][k]*b[k][j]