首页 > 其他 > 详细

[USACO09DEC] Video Game Troubles

时间:2019-04-20 11:24:07      阅读:141      评论:0      收藏:0      [点我收藏+]

背包DP;有依赖的背包问题

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;

int n, V;
int f[2][100003];

int main() {
    scanf("%d%d", &n, &V);
    for (int i=1, P, G; i<=n; ++i) {
        scanf("%d%d", &P, &G);
        for (int j=V; j>=P; --j) f[i&1][j]=f[(i-1)&1][j-P]; // suppose we have to buy it
        for (int j=1, w, c; j<=G; ++j) {
            scanf("%d%d", &c, &w);
            for (int k=V; k>=c+P; --k) f[i&1][k]=max(f[i&1][k], f[i&1][k-c]+w);
        }
        for (int j=V; j>=0; --j) f[i&1][j]=max(f[(i-1)&1][j], f[i&1][j]); // revise
    }
    printf("%d\n", f[n&1][V]);
    return 0;
}

[USACO09DEC] Video Game Troubles

原文:https://www.cnblogs.com/greyqz/p/10739932.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!