ロサンゼルスマジックバレーP2049ポーン(ベクトル)

トピックポータル

問題解決のアイデア:

すべての大きな出力缶の数年の数を取ることができ、各点を有するベクター、および小(N、M)を維持します。

ベクトルのコレクションを確保するために、現在のK点を手放すされていない(i、j)を、維持するために、ブールFF [J] [k]を使用することで、または意志MLE(プレス次元でも)

ACコード:

1の#include <iostreamの>
 2の#include <cstdioを>
 3の#include <ベクトル>
 4の#include <CStringの>
 5  
6  使用して 名前空間STDを、
7  
8  整数 N、M、K、[ 101 ] [ 101 ]、ANS、今。
9ベクトル< INT > S [ 2 ] [ 101 ]。
10  BOOL VIS [ 101 ]、FF [ 101 ] [ 101 ]。
11  
12  INT メイン(){
 13      のscanf(" %D%D%D "、&​​N、&M、およびK);
14      のためにINT iは= 1 ; iが<= N; I ++ 15          のためのINT J = 1 ; J <= Mであり、j ++ 16              のscanf(" %dの"、および[I] [J])。
17の      S [ 1 ] [ 1 ] .push_back([ 1 ] [ 1 ])。
18      のためにINT iは= 1 ; iが<= N; I ++、今^ = 1 19          のためのINT J = 1; J <= M。J ++ ){
 20              のためにINT P = 1 ; p <= S [今^ 1 ] [J] .size(); P ++ ){
 21                  INT U = A [i]は[J] * S [今^ 1 ] [ J] [P- 1 ]%、K。
22                  であれば(!FF [J] [U]){
 23の                     S [今] [J] .push_back(U)。
24個の                      FF [J] [U] = 1 25                  }
 26              }
 27の              S [今^ 1 ] [J] .clear();
28              のためのint型のp =1 ; p <= S [今] [J- 1 ] .size()。P ++ ){
 29                  INT U = A [i]は[J] * S [今] [J- 1 ] [P- 1 ]%のK。
30                  であれば(!FF [J] [U]){
 31の                     S [今] [J] .push_back(U)。
32個の                      FF [J] [U] = 1 33                  }
 34              }
 35              のmemset(FF、0はsizeof (FF))。
36          }
 37      のためにINT iが= 1 ; iが<= S [今^ 1] [M] .size()。I ++ 38          であれば(VIS [S [今^ 1 ] [M] [I- 1 ]%K] == 0 39              VIS [S [今^ 1 ] [M] [I- 1 ]%K] = 1、++ ANS ;
40      のprintf(" %dの\ n " 、ANS)。
41      のためにINT iは= 0 ; iが<= K; I ++ 42          であれば(VIS [I])
 43              のprintf(" %dの" 、I)。
44      リターン 0 ;
45 }

 

おすすめ

転載: www.cnblogs.com/lipeiyi520/p/12339864.html