代码
#include<iostream>
using namespace std;
int main()
{
int n,d;
cin>>n>>d;
int Q[n+1][d+1];
int K[n+1][d+1];
int V[n+1][d+1];
int W[n+1];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=d;j++)
{
cin>>Q[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=d;j++)
{
cin>>K[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=d;j++)
{
cin>>V[i][j];
}
}
for(int i=1;i<=n;i++)
{
cin>>W[i];
}
long long mul_1[d+1][d+1]={0};
for(int i=1;i<=d;i++)
{
for(int j=1;j<=d;j++)
{
mul_1[i][j]=0;
for(int k=1;k<=n;k++)
{
mul_1[i][j]+=K[k][i]*V[k][j];
}
}
}
long long mul_2[n+1][d+1]={0};
for(int i=1;i<=n;i++)
{
for(int j=1;j<=d;j++)
{
mul_2[i][j]=W[i]*Q[i][j];
}
}
long long mul_3[n+1][d+1]={0};
for(int i=1;i<=n;i++)
{
for(int j=1;j<=d;j++)
{
mul_3[i][j]=0;
for(int k=1;k<=d;k++)
{
mul_3[i][j]+=mul_2[i][k]*mul_1[k][j];
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=d;j++)
{
cout<<mul_3[i][j];
cout<<(j<d?" ":"");
}
cout<<(i<n?"\n":"");
}
return 0;
}