http://poj.org/problem?id=3318
g++ re c++ ac
受不了了
随机找了60000 个点比较的 运气好就过了
#include<iostream> #include<cstdio> #include<cstdlib> #include<ctime> #include<queue> #include<cstring> #include<set> #include<cmath> #include<algorithm> using namespace std; const int N=505; int a[N][N]; int b[N][N]; int c[N][N]; int main() { //freopen("data.txt","r",stdin); int n; scanf("%d",&n); for(int i=0;i<n;++i) for(int j=0;j<n;++j) scanf("%d",&a[i][j]); for(int i=0;i<n;++i) for(int j=0;j<n;++j) scanf("%d",&b[i][j]); for(int i=0;i<n;++i) for(int j=0;j<n;++j) scanf("%d",&c[i][j]); srand((unsigned int)time(NULL)); int I=60000; bool flag=true; while(I--) { int k=rand()%n; int l=rand()%n; int temp=0; for(int i=0;i<n;++i) { temp+=(a[k][i]*b[i][l]); } if(temp!=c[k][l]) { flag=false; break; } } if(flag==true) printf("YES\n"); else printf("NO\n"); return 0; }