[二部グラフの最大マッチング] P2055 [ZJOI2009]休日ホステル

1の#include <iostreamの>
 2の#include <CStringの>
 3  使用して 名前空間STDを、
4  
5  int型のヘッド[ 101 ]。
6  int型のCNT;
7  
8  構造体のエッジ
 9  {
 10      のint 次U、。
11 } E [ 10010 ]。
12  
13  空隙追加(INT U、INT V)
 14  {
 15      E [++ CNT] .U = V。
16      E [CNT] .next = 頭部[U]。
17     ヘッド[U] = CNT。
18  }
 19  
20  INT N。
21  ブール SC [ 51 ]。
22  BOOL HO [ 51 ]。
23  BOOL VIS [ 51 ]。
24  int型の一致[ 51 ]。
25の 
26の BOOL DFS(INT X)
 27  {
 28      のためのint型 I =ヘッド[X]; I =! - 1 ; I = E [I] .next)
 29      {
 30          なら!(VIS [E [I] .U ])
31          {
 32              VIS [E [i]は.U] = 33              であれば(一致[E [i]は.U] ||!DFS(一致[E [I] .U]))
 34              {
 35                  一致[E [i]は.U] =のX。
36                  リターン 37              }
 38          }
 39      }
 40      リターン 41  }
 42  
43  INT T。
44  int型のTOT;
45  
46  のint main()の
 47  {
 48     CIN >> T;
49      一方(T-- 50      {
 51          のmemset(ヘッド、 - 1はsizeof (ヘッド))。
52          CNT = 0 53          TOT = 0 54          CIN >> N。
55          のためにint型 i = 1 ; iが<= N; iが++ 56          {
 57              CIN >> SC [I]。
58          }
 59          のためにINT I = 1; I <= N。I ++ 60          {
 61              CIN >> HO [I]。
62              であれば(HO [I] &&!SC [I])
 63              {
 64                  追加(I、I)。
65              }
 66          }
 67          のためのint型 i = 1 ; iが<= N; iが++ 68          {
 69              なら TOT ++(SC [I] || HO [I] && SC [I]!) 70          }
 71          のためのint型 i = 1 ; iは= N <; ++ I)
 72         {
 73              のためのINT J = 1 ++; J <= N J)
 74              {
 75                  のint T。
76                  cinを>> トン。
77                  あれば(T && SC [J])は(i、j)を加えます。
78              }
 79          }
 80          のmemset(一致、0はsizeof (一致))。
81          int型 CNT = 0 82          のためにint型 i = 1 ; iが<= N iが++ 83          {
84              であれば(SC [I] && HO [I] ||!SC [I])
 85              {
 86                  のmemset(VIS、はsizeof (VIS))。
87                  もし(DFS(i))をCNT ++ ;
88              }
 89          }
 90          であれば(CNT == TOT)COUT << " ^ _ ^ " << ENDL。
91          他の裁判所未満<< " T_T " << てendl;
92      }
 93 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/thjkhdf12/p/11641319.html