여러 배낭 문제 - 바이너리 최적화

알고리즘 : 바이너리 최적화, 동적 프로그래밍

사용법 #include <iostream> 
#INCLUDE <알고리즘> 
#INCLUDE <CString을>
 사용  스페이스 성병;
CONST의  INT에서 N = 2010 ;
INT의 V [N], [N] w, CNT;
INT F [N];
INT 본체 ( 무효 ) {
     INT의 N, m; 
    CIN >> >> N m;
    위한 ( int로 난 = 1 , A, B,이야, 난 = <N; i가 ++ ) { 
        CIN 사항 >> >> B >> S; 
 
        INT의 K = 1 ;
        반면 (K <= S) { 
            CNT ++; 
            V [카본 나노 튜브] 는 * = K 단계; 
            w [CNT]는 B 형 *의 = K 단계; 
            (S) - = K; 
            K * = 2 ; 
        } 
        경우 (S> 0 ) { 
            CNT ++ ; 
            V [카본 나노 튜브] 는 * = 들; 
            w [CNT]는 B * = S; 
        } 
    } 
    N = CNT;
    위한 ( int로 I = 1 ; i가 <= N; 내가 ++ ) {
          ( INT J = m; J> = V [I] j-- ) {
            F [J] = 최대 (F [J], F [JV [I] + w [I]); 
        } 
    } 
    COUT << F [m] << ENDL;
    반환  0 ; 
}

 

추천

출처www.cnblogs.com/programyang/p/11241585.html