问题:csp认证真题202305-2。题目样例能通过,但是当数据量过大时,能够正常编译和运行但结果出错,感觉算法有问题但找不出来。
我的代码:
#include <iostream>
using namespace std;
int q[10010][30];
int kt[30][10010];
int v[10010][30];
int w[10010];
int n,d;
int temp1[30][30] = {0};
int temp2[10010][10010]={0};
int main()
{
scanf("%d%d",&n,&d);
for(int i=0;i<n;i++)
for(int j=0;j<d;j++)
scanf("%d",&q[i][j]);
for(int j=0;j<n;j++)
for(int i=0;i<d;i++)
scanf("%d",&kt[i][j]);
for(int i=0;i<n;i++)
for(int j=0;j<d;j++)
scanf("%d",&v[i][j]);
for(int i=0;i<n;i++)
scanf("%d",&w[i]);
getchar();
for(int i=0;i<d;i++)
{
for(int k=0;k<n;k++)
for(int j=0;j<d;j++)
{
temp1[i][j]+=kt[i][k]*v[k][j];
}
}
for(int i=0;i<n;i++)
{
for(int k=0;k<d;k++)
for(int j=0;j<d;j++)
{
temp2[i][j]+=q[i][k]*temp1[k][j];
}
for(int z=0;z<d;z++)
temp2[i][z]*=w[i];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<d;j++)
{
printf("%d ",temp2[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}