http://poj.org/problem?id=3318
矩阵A*矩阵B是否等于矩阵C
1 #include <cstdio>
2 #include <cstring>
3 #include <time.h>
4 #include <algorithm>
5 #define maxn 1010
6 using namespace std;
7
8 int a[maxn][maxn],b[maxn][maxn],c[maxn][maxn],d[maxn];
9 int n;
10 int b1[maxn],c1[maxn],a1[maxn];
11
12 int main()
13 {
14 while(scanf("%d",&n)!=EOF)
15 {
16 for(int i=0; i<n; i++)
17 {
18 for(int j=0; j<n; j++)
19 scanf("%d",&a[i][j]);
20 }
21 for(int i=0; i<n; i++)
22 {
23 for(int j=0; j<n; j++)
24 {
25 scanf("%d",&b[i][j]);
26 }
27 }
28 for(int i=0; i<n; i++)
29 {
30 for(int j=0; j<n; j++)
31 {
32 scanf("%d",&c[i][j]);
33 }
34 }
35 srand((unsigned int)time(0));
36 for(int i=0; i<n; i++)
37 {
38 d[i]=rand()%100;
39 }
40 for(int i=0; i<n; i++)
41 {
42 for(int j=0; j<n; j++)
43 {
44 b1[i]+=b[i][j]*d[j];
45 c1[i]+=c[i][j]*d[j];
46 }
47 }
48 for(int i=0; i<n; i++)
49 {
50 for(int j=0; j<n; j++)
51 {
52 a1[i]+=a[i][j]*b1[j];
53 }
54 }
55 bool flag=false;
56 for(int i=0; i<n; i++)
57 {
58 if(a1[i]!=c1[i])
59 {
60 flag=true;
61 break;
62 }
63 }
64 if(!flag) printf("YES\n");
65 else printf("NO\n");
66 }
67 return 0;
68 }
poj 3318 Matrix Multiplication,布布扣,bubuko.com
时间: 2024-10-09 08:55:50