私は何も言うことはありませんこれは、証明するために毎日作ります
1の#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 4 int型 M、N、TOT = - 1、H [ 10005 ]、ANS = 0 。 5 構造体ノード{ 6 INT から次は、休憩します。 7 INT 最後。 8 } E [ 100005 ]。 9 int型 HOU [ 10005 ]。 10 ブール裁判官[ 10005 ]。 11 ボイド追加(int型のx、int型のy、int型Z){ 12 すべて++ ; 13 および[すべて] .next = H [X]。 14 H [X] = 全て、 15 および[すべて]。= X。 16 および[すべて] .TO = Y。 17 および[すべて] .rest = Z。 18 } 19の20 のint DIS [ 10005 ] G [ 10005 ]流量[ 10005 ]。 21 BOOL VIS [ 10005 ]。 22 23 INT BFS(INT S、INT T){ 24 キュー< INT > Q; 25の DIS [S] = 0 ; 26 q.push(S); VIS [S] = 真。 27 ながら(!{q.empty()) 28 INT U = q.front(); VIS [U] = 偽; q.pop()。 29 のために(INT iはH [U] =; - I =(!1 ; I =)は、Eを[I] .next){ 30の 場合(DIS [E [i]は.TO]> DIS [U] + 1 && G [ E [i]は.TO] ==( - 1)&& E [I] .rest> 0 ){ 31 G [E [i]は.TO] = I。 32 流量[E [i]は.TO] = 分(フロー[U]、E [I] .rest)。 33の DIS [E [i]は.TO] = DIS [U] + 1 。 34 であれば(VIS [E [i]は.TO] == 偽){ 35 VIS [E [i]は.TO] = 真。 36 q.push(E [I] .TO)。 37 } 38 } 39 } 40 } 41 } 42 43 INT EK(INT S、INT T){ 44 ながら(1 ){ 45 のmemset(DIS、から0x7f、はsizeof (DIS))。 46 のmemset(VIS、偽、はsizeof (VIS)); 47 のmemset(流れから0x7f、はsizeof (フロー))。 48 のmemset(G、 - 1、はsizeof (G))。 49の BFS(S、T)。 50 であれば(G [T] ==( - 1))戻り 0 ; 51の ANS + = 流量[T]。 52 のために(INT。; P =(S);!P = T P = E [] G [P] から){ 53 。E [G [P] = REST-は[t]を流れます。 54 E [G [P] ^1 ] + = .rest 流量[T]。 55 } 56 57 } 58 } 59 60 INT メイン(){ 61 // freopenは( "shut1.in"、 "R"、標準入力)。 62 のmemset(H、( - 1)はsizeof (H))。 63 CIN >> N >> M。 64 のために(INT iは= 1 ; iが<= N; I ++ ){ 65 追加(0、I、1 )。 66 追加(I、0、0 ); 67 } 68 のために(INT iは= 1 ; I <= M I ++ ){ 69 のint x、y; CIN >> X >> Y。 70 追加(X、N + Y、1 )。 71 追加(N + Y、X、0 ); 72 } 73 のために(INT iは= 1 ; iが<= N; I ++ ){ 74 追加(I + N、2 * N + 1、1 )。 75 追加(2 * N + 1、I + N、0 ); 76 } 77 EK(0、2 * N + 1 )。 78 のために(INT iが= 1 ; iが<= N; I ++ ){ 79 のために(INT J = H [I]; J =(! - 1); J = E [J] .next){ 80 であれば(E [ J] .rest == 0!&& E [J] .TO = 0 ){ 81 HOU [I] = E [J] .to- N。 82 ブレーク; 83 } 84 } 85 } 86 のmemset(裁判官、偽、はsizeof (裁判官))。 87 以下のために(int型私は= 1 ; I <= N; I ++ ){ 88 であれば(裁判官[i]を== 偽){ 89 用(int型になりました= I;!今=(2 * N + 1)&&今=!0 ;今= HOU [今]){ 90 COUT <<今<< " " 。 91 [今] =裁判官真。 92 } 93 COUT << ENDL。 94 } 95 } 96 COUT << N-ANS << ENDL。 97 }