#include<iostream>
#include<cstdio>
using namespace std;
int a[1001][1001],b[1001][1001],c[1001][1001];
int br[1001],cr[1001];
int main()
{
int n,p,m;
scanf("%d%d%d",&n,&p,&m);
int i,j,k;
for(i=0;i<n;i++)
for(j=0;j<p;j++)
scanf("%d",&a[i][j]);
for(i=0;i<p;i++)
{
br[i]=0;
for(j=0;j<m;j++)
{
scanf("%d",&b[i][j]);
br[i]+=b[i][j];
}
}
for(i=0;i<n;i++)
{
cr[i]=0;
for(j=0;j<m;j++)
{
scanf("%d",&c[i][j]);
cr[i]+=c[i][j];
}
}
bool flag=true;
int r,cc,v;
for(i=0;i<n;i++)
{
int sum=0;
for(j=0;j<p;j++)
{
sum+=a[i][j]*br[j];
}
if(sum!=cr[i])
{
flag=false;
bool f1=true;
for(j=0;j<m&&f1;j++)
{
sum=0;
for(k=0;k<p&&f1;k++)
{
sum+=a[i][k]*b[k][j];
}
if(sum!=c[i][j])
{
f1=false;
r=i,cc=j,v=sum;
}
}
break;
}
}
if(flag)
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
cout<<r+1<<' '<<cc+1<<endl;
cout<<v<<endl;
}
return 0;
}
这本来是POJ月赛的一道题,我刚开始想的是一个一个检测呗,结果上网一搜,还有快速检测法,这个检测法基于数学运算C11+C12 = A11B11+A12B21+A21B11+A22B21 =
(A21+A11)*B11+(A12+A22)*B21。所以先把一个矩阵的每一列的和算出来。在和另外一个相乘。真是暗藏杀机啊。