poj 3318 Matrix Multiplication(用向量压缩方阵)

来源:互联网 发布:java定义空字符串数组 编辑:程序博客网 时间:2024/05/16 17:48

题意 : 方阵A,B,C, 问A * B = C是否成立。(方阵为n*n维)

 

一看题还以为用Strassen算法,就到自习室看了一晚,算法不容易实现。看了Discuss才知道有更好的办法解决这题,利用矩阵的性质。

若 A = B, 则 T * A = T * B. 注意反之不成立,即矩阵乘法消去律不成立。但这题仍然可利用消去律,因为消去律不成立这一事件发生的概率非常小。随机生成一个向量T(1*n),计算 T * A * B 和 T * C,比较结果是否相等。

 

整理一下思路,本题要证明 A*B = C,可以转化成对 T * A * B = T * C 的证明,因为矩阵相乘的时间复杂度很大,因此T选作向量,可以有效降低时间复杂度。

 

原创粉丝点击