题目描述
给出三个N*N的矩阵A, B, C,问A * B是否等于C?
Input
第1行,1个数N。(0 <= N <= 500)
第2 - N + 1行:每行N个数,对应矩阵A的元素。(0 <= M[i] <= 16)
第N + 2 - 2N + 1行:每行N个数,对应矩阵B的元素。(0 <= M[i] <= 16)
第2N + 2 - 3N + 1行:每行N个数,对应矩阵C的元素。
Output
如果相等输出Yes,否则输出No。
样例
input
2
1 0
0 1
0 1
1 0
0 1
1 0
output
Yes
题解
似乎是久违的更新quq
这道题目呢。
n是500,n^3是肯定会爆啦
然后现在这里有一个神奇的定理是矩阵结合律
比如在A*B=C等式两边同乘X矩阵,等式依旧成立
然后就可以把时间复杂度降到n^2了
p党瑟瑟发抖。
var n,i,j:longint;
a,b,c:array[0..505,0..505] of int64;
ans,sum,x,xx:array[0..505] of int64;
begin
readln(n);
for i:=1 to n