トピック接続:https://codeforces.com/contest/1323/problem/B
問題の意味:サイズNアレイ、サイズMのアレイA、Bに、Cアレイは、二次元配列c [i]は[J] = [I] * B [J]であり、kは矩形領域Qでありますいくつかがあります。
溶液:kは、I /アレイ1に隣接bの場合は、すべての係数kは、最初の配列に格納され、その後トラバース因子、隣接配列にI-1を表す、kが形成された矩形領域でありますその後、全ての各要因の下での回答まで追加、Bの数を乗じた配列で、配列の予選試合の数を計算するために、(それについてあなた自身の脳を構成します)。
1の#include <ビット/ STDC ++ H> 2 の#define長い長llの 3 使用して 名前空間STDを、 4 5 int型 A [ 100100 ]、B [ 100100 ]。 6 int型 C [ 100100 ]。 7 8 INT メイン() 9 { 10 INT N、M、K。 11 CIN >> N >> M >> K。 12 のために(INT iが= 0 ; iが<N; I ++)CINは>> [I]。 13 のために(INT I = 0; I <M、I ++)CIN >> B [i]は、 14 INT P = 0 。 15 のための(INTは私= 1 ; I ++; iは<= K * ){ 16 であれば(K%のI == 0 ){ 17 C [P ++] = Iと、 18 であれば(私は== K / I)続けます。 19 C [P ++] = K / I。 20 } 21 } 22 LL ANS = 0 。 23 のために(INT iが= 0 ; I <P; I ++ ){ 24 INTはCNT = 0 ; 25 LL X = 0、Y = 0 。 26 のために(INT J = 0 ; J <nであり、j ++ ){ 27 であれば([J] == 1)CNT ++ 。 28 他の CNT = 0 ; 29 であれば(CNT == C [i])とCNT - 、X ++ 。 30 } 31 、CNT = 0 。 32 のために(INT J = 0 ; J <M J ++ ){ 33 であれば(B [J] == 1)CNT ++; 34 他の CNT = 0 。 35 であれば(CNT == K / C [i])とCNT - 、Y ++ 。 36 } 37 ANS = ANS + X * Y。 38 } 39 COUT << ANS << ENDL。 40 リターン 0 ; 41 }