#Snow{ position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 99999; background: rgba(255,255,240,0.1); pointer-events: none; }

矩阵乘法

#include<bits/stdc++.h>
using namespace std;
const int N=110;

struct matrix{
	int n,m,g[N][N];
	matrix operator*(const matrix&b)const{
		matrix c;c.n=n;c.m=b.m;
		memset(c.g,0,sizeof(c.g));
		for(int i=1;i<=n;i++)
			for(int k=1;k<=m;k++)
				for(int j=1;j<=b.m;j++)
					c.g[i][j]=c.g[i][j]+g[i][k]*b.g[k][j];
		return c;
	}
};

int main(){
	
	int a,b,c,d;
	cin>>a>>b>>c>>d;
	matrix x={a,b};
	matrix y={c,d};

	for(int i=1;i<=a;i++)
		for(int j=1;j<=b;j++)
			cin>>x.g[i][j];
	
	for(int i=1;i<=c;i++)
		for(int j=1;j<=d;j++)
			cin>>y.g[i][j];
	
	matrix z=x*y;
	
	for(int i=1;i<=a;i++)
		for(int j=1;j<=d;j++)
			printf("%d ",z.g[i][j]);
	
	return 0;
}
posted @ 2022-10-26 14:06  繁花孤城  阅读(31)  评论(0)    收藏  举报