原题链接:http://acm.fzu.edu.cn/problem.php?pid=2214
这题不能按照传统01背包来做,它的容量太大,数组会爆掉。注意到物品个数较小,而且价值和最大只有5000,所以可以逆向思维,求得对应价
值下最小的重量,即dp[i]表示总价值为i的最小重量是多少,则dp[j] = min(dp[j] , dp[j-val[i]]+vol[i]);最后从sum(物品总价值开始判
断)开始,找到第一个小于等于b(容量)的v即可。。。
原题链接:http://acm.fzu.edu.cn/problem.php?pid=2214
这题不能按照传统01背包来做,它的容量太大,数组会爆掉。注意到物品个数较小,而且价值和最大只有5000,所以可以逆向思维,求得对应价
值下最小的重量,即dp[i]表示总价值为i的最小重量是多少,则dp[j] = min(dp[j] , dp[j-val[i]]+vol[i]);最后从sum(物品总价值开始判
断)开始,找到第一个小于等于b(容量)的v即可。。。
centos7上面部署zabbix
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M