HDU1814平和委員会

効果の件名:

Nお互いを好きではない人のペアの間1-2 * nを、Mから番号右の人を、持っている、各ペア徐の人々が平和委員会、辞書式の最小のソリューションに参加する一人を選択します

--------------------------------

最小限の辞書順による2-SATの問題は、あなただけの汚れの暴力を求めるSCC方法はできません。O(N×m個)

--------------------------------

1の#include <iostreamの>
 2の#include <cstdioを>
 3の#include <CStringの>
 4の#include <アルゴリズム>
 5  使って 名前空間STD。
6  CONST  INT MAXN = 16020 7  のconst  int型 MAXM = 4E4 + 20 8  int型N、M。
9  構造体の10  {
 11      int型のU、V、NXT。
12  } E [MAXM]。
13  int型ヘッド[MAXN]、JS。
14  ボイド addage(int型のu、int型V)
 15  {
 16      E [++ JS] .U = U; E [JS] .V = V。
17      E [JS] .nxt =頭部[U];頭部[U] =のJS。
18  }
 19  int型CLO [MAXN]、ST [MAXN]、トップ。
20  BOOL DFS(INT X)
 21  {
 22      であれば(CLO [X] == 1リターン 1 23      であれば(CLO [X] == 2戻り 0 ;
24      CLO [X] = 1 ; CLOの[X ^ 1 ] = 2 ;
25      ST [++トップ] =のX。
26      のためにint型 I =ヘッド[X]; I; I = E [I] .nxt)
 27      {
 28          のint V = E [I] .V。
29          もし(!DFS(V))の戻り 0 ;
30      }
 31      リターン 1 32  }
 33  BOOLが飽和()
 34  {
 35      のmemset(CLO、0はsizeof CLO)。
36      のためにint型 I = 0 ; iが<(N << 1)、I + = 2 37      {
 38         もし(CLO [I])を続けます39          トップ= 0 40          であれば(!DFS(I))
 41          {
 42              一方(上部)CLO [ST [トップ] = 0、CLO [ST [トップ- ] ^ 1 ] = 0 ;
43              もし(!DFS(I ^ 1))の戻り 0 ;
44          }
 45      }
 46      リターン 1 47  }
 48  ボイドのinit()
 49  {
 50      のmemset(ヘッド、0sizeofのヘッド);
51の      JS = 0 52      のmemset(CLO、0はsizeof CLO)。
53      のmemset(ST、0はsizeof ST)。
54      
55  }
 56  のint main()の
 57  {    
 58      ながら(scanf関数(" %d個の%のD "、&​​N、&M)== 2 59      {
 60          のinit();
61          のためにint型、B、I = 1 ; I <= M + I)
 62          {
63              のscanf(" %D%dの"、&​​、&B)。
64              -A-、 - B。
65              addage(B ^ 1 )。
66              addage(B、A ^ 1 )。
67          }
 68          場合(飽和())
 69          {
 70              のためにint型 i = 0 ; iが=(N << < 1); ++ I)
 71                  であれば(CLOを[I] == 1)のprintf(" %D \ N "、I + 1 )。
72          }
73の         他のプット(" NIE " )。
74      }
 75      リターン 0 76 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/gryzy/p/10977850.html