$ A * B = C $は、その後明らかに$ A * Bがある場合、ランダムに、N * 1つのDの行列を生成する* D = C * D $、 法律に関連して、そこに$ A *(B * D) = C * D $
ので(N * N)*(N * 1) 乗算が激しいことができるので、複雑さが$ oは、(N ^ 2)$である
手順がマトリクス状に数字のすべての合計によって決定されるまで(慣行とCは、$ [I] [k]を求め、即ち、同じである * B [k]は[J] $、 事前加算、及び缶すばやく計算の各列を
1の#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 INT、N、X、S [ 1005 ]。 4つの 長い 長いANS。 5 INT メイン(){ 6 ながら(scanf関数(" %のD "、&N)=!EOF){ 7 のmemset(S、0、はsizeof (S))。 8つの ANS = 0 。 9 用(INT iは= 1 ; iが<= N; I ++ ) 10 のための(INT J =1 ; J <= nであり、j ++ ){ 11 のscanf(" %dの"、およびX) 12の S [J] + = X。 13 } 14 のために(INT iは= 1 ; iが<= N; I ++ ) 15 のための(INT J = 1 ; J <= nであり、j ++ ){ 16 のscanf(" %dの"、およびX) 17の ANS + = X * S [i]は、 18 } 19 のために(INT I =1 ; I <= N; I ++ ) 20 のための(INT J = 1 ; J <= nであり、j ++ ){ 21 のscanf(" %dの"、およびX) 22 ans- = X。 23 } 24 であれば(ANS)のprintf(" いいえ\ n " ); 25 他のprintf(" はい\ N " ); 26 } 27 }