AcWing (12) 배낭 문제의 특정 프로그램이 추구

// F는 [I] [J] 최대 (F가 [I-1] [J], F [I-1] [JV [I] + w [I]) =
사용법 #include <iostream>
사용하는  네임 스페이스 표준을;
CONST  INT = N 1,010 ;
INT의 N, m;
INT V [N], w [N];
INT의 F [N] [N];
값 int () {메인
    CIN >> N- m]
      ( INT I = . 1 ; I <= N-; I ++) CIN >> V [I] >> W [I]
      ( INT I = N-; I> = 1이다. ; I -) // 앞에서 최소 사전 편찬, 푸시 백은 DP 할 때, 뒤쪽의 
         ( INT J = 0 ; J <= m; J ++) { // 이차원의 상태 이후 루프 순서는 중요하지 않다 
            F를 [I] [J] = F [I + 1이다. ] [J]
             IF (J> = V [I]) F [I] [J] = 최대 (F [I] [J] , F [I + 1이다. ] [J - V [I] + W [I]);
        }
    // [. 1] F [m]는 최대 값이다 
    INT J = m;
      ( INT I = 1. ; I <= N-; I ++) // 턴 선택된 각 항목을 참조 할 수 
             // 보증 늦어도를 0 이상 
        IF (&& F == F J> = V [I]는 [I]는 [J] [I + 1. [J가 - V [I]를] + W가 [I]가) { //이 만큼 군으로부터 선택된으로부터 선택 될 수있다 아니함 
            COUT I << << '  ' ;
            J - = V [I];
        }
    반환  0 ;
}

 

 

추천

출처www.cnblogs.com/QingyuYYYYY/p/11992995.html