조종사와 함께 "24 네트워크 문제를 흐름"

#INCLUDE <비트 / stdc ++ H.>
 사용  스페이스 성병; 

INT m, N, TOT = - 1 , H [ 1005 ], ANS = 0 , TP = 0 ; 

구조체 노드 {
     INT  에서 다음은 휴식하기;
    int로 마지막; 
E} [ 10005 ]; 

보이드 추가 ( INT의 X, INT Y, INT의 z) { 
    TOT ++ ; 
    E [TOT] 다음 내용 = H [X]; 
    H [X] = TOT; 
    E는 [TOT].  = X; 
    E [TOT] .TO =와이; 
    E [TOT] .rest = Z; 
} 

의 INT DIS [ 1005 ], g [ 1005 ], [유동 1005 ];
불리언 힘 [ 1005 ]; 

INT의 BFS ( INT S, INT의 t) {  < INT > Q; 
    DIS [S] = 0 ; 
    발 q.push; 힘 [S] = ;
    반면 (! {q.empty ())
         INT U = q.front (); 힘 [U] = 거짓 ; q.pop ();
        위한 ( INT 나 H가 = [U]! = I (-1 ) 나는 = 전자 [i]는 다음 내용) {
             경우 (DIS [E [I] .TO]> DIS [U] + 1 && g [E [I] .TO] == (- 1 ) && E [I] .rest> 0 ) { 
                g [E [I] .TO] = I; 
                [전자 I] .TO] 유동 = 분 (유량 [U], E [I] .rest); 
                DIS [E [I] .TO] = DIS [U] + 1 ;
                경우 (힘은 [E [I] .TO] == 거짓 ) { 
                    힘은 [E는 [I] .TO]는 = ; 
                    q.push (E [I] .TO); 
                } 
            } 
        } 
    } 
} 

INTEK ( INT S, INT t) {
     동안 ( 1 ) { 
        memset 함수 (DIS, 0x7f를 , 는 sizeof (DIS)); 
        memset 함수 (마주, 거짓 , 는 sizeof (마주)); 
        memset 함수 (흐름 에서 0x7f , 는 sizeof (유량)); 
        memset 함수 (g, - 1 , 를 sizeof (g)); 
        BFS (S, t); 
        경우 (g [t] == (- 1 )) 반환  0 ; 
        ANS + = 유량 [t];
        대한 ( INTp = t, p = (S)! p = E [g [P]. ) { 
            E [g [P] 나머지. - = [t]를 흐르게; 
            E [g [P] 마지막. = TP; 
            E [g [P] ^ 1 ] + = .rest 흐름 [t]; 
        } 
    } 
} 

INT 의 main () { 
    memset 함수 (H, - 1 , 를 sizeof (H)); 
    CIN >> >> N m;
    위한 ( INT 난 = 1 ; I <= m; I ++ ) { 
        추가 ( 0 , I, 1 ); 
        추가 (I, 0 , 0  );
    }
     ( INT I = m + 1 , I <= N; I ++ ) { 
        추가 (I, N + 1 , 1 ); 
        추가 (N + 1 , I, 0 ); 
    } INT의 X, Y;
    반면 (는 scanf ( " % D % D ' , X, Y) =! {EOF) 
        추가 (X, Y, 1 ); 
        추가 (Y, X, 0 ); 
    } 
    EK ( 0 , N + 1 );
    경우 (ANS == 0 ) { 
        COUT << "아니 솔루션! " << ENDL, 
        종료 ( 0 ) 
    } 
    COUT << ANS << ENDL; 
    
}
코드보기

그런데,이 .... 네트워크 흐름 문제는이 분형 그래프의 최대 매칭 할 것이다

물 위에, 당신은 헝가리에 관심, 또는 네트워크 흐름 맛을 하 할 수있다

추천

출처www.cnblogs.com/shatianming/p/12227577.html