hdu(3449)(简单的有依赖背包)
发布日期:2022-03-11 15:03:27 浏览次数:8 分类:技术文章

本文共 934 字,大约阅读时间需要 3 分钟。

该题在选择物品的时候,必须得选择盒子,因此为有依赖的背包,注意与树形dp的区别 #include 
#include
#include
using namespace std; int dp[55][100005];int main(){ int n,v,i,j,k,pi,t,c,w; while(scanf("%d%d",&n,&v)!=EOF) { memset(dp,0,sizeof(dp)); for (i=1;i<=n;++i) { scanf("%d%d",&pi,&t); for (j=0;j
=pi;--j) dp[i][j]=dp[i-1][j-pi];//继承上一次的结果 for (k=1;k<=t;++k) { scanf("%d%d",&c,&w); for (j=v;j>=c;--j) if (dp[i][j-c]!=-1)//代表选了选该状态的情况下还要选盒子 { dp[i][j]=max(dp[i][j],dp[i][j-c]+w); } } for (j=v;j>=0;--j)//如果可以更新,那么就进行更新 dp[i][j]=max(dp[i][j],dp[i-1][j]); } printf ("%d\n",dp[n][v]); } return 0;}

 

转载于:https://www.cnblogs.com/1994two/archive/2013/05/10/3071281.html

转载地址:https://blog.csdn.net/weixin_30267785/article/details/99106870 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:蝶若双生,花便盛开
下一篇:web

发表评论

最新留言

很好
[***.229.124.182]2024年04月13日 12时56分12秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章