【Bzoj2396]マジックマトリックス

$ 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 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/PYWBKTDA/p/11869511.html