HDOJ 1712 ACboy needs your help(패키지 그룹)

5136 단어 help
제목:
과정 i가 지불한 시간 j가 얻은 수익을 제시하고 최대 수익을 구한다.
아이디어:
그룹 패키지 입문: dp[i][j]=max(dp[i-1][j-k]+valk)dp[i][j]는 전 i종의 아이템이 지불한 시간 j가 얻은 최대 수익을 대표한다.
 
#include <iostream> #include <algorithm> using namespace std; const int MAXN = 110; const int MAXD = 110; int dp[MAXD], A[MAXN]; int main() { int n, m; while (scanf("%d %d", &n, &m) && n && m) {

        memset(dp, 0, sizeof(dp)); for (int i = 0; i < n; ++i) { for (int j = 1; j <= m; ++j)

                scanf("%d", &A[j]); for (int v = m; v > 0; --v) for (int j = 0; j <= v; ++j)

                    dp[v] = max(dp[v], dp[v - j] + A[j]); } int ret = 0; for (int v = 1; v <= m; ++v)

            ret = max(ret, dp[v]);



        printf("%d
"
, ret); } return 0; }

좋은 웹페이지 즐겨찾기