hdu-2602-Bone Collector-(0-1背包)
来源:互联网 发布:如何启动蜂窝移动数据 编辑:程序博客网 时间:2024/05/21 06:11
题目传送门:https://vjudge.net/problem/HDU-2602
两种都可以
for(i = n; i >= 1; i--)
{
for(j = 0; j <= ww; j++)
{
if(j < w[i])
dp[i][j] = dp[i + 1][j]; //第i个物品放入后,因为剩余空间不够无法放入。
else
dp[i][j] = max(dp[i + 1][j], dp[i + 1][j - w[i]] + mon[i]); //表示第i个物品将放入大小为j的背包中。
}
}
或
for(int i = 1; i <= n; i++)
{
for(int j = 0; j <= ww; j++)
{
if(j < w[i])
dp[i][j] = dp[i - 1][j];
else
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i]] + mon[i]);
}
}
完整代码:
#include <algorithm>#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <cmath>#include <queue>#include <set>#include <map>using namespace std;int dp[1005][1005];int main(){ int t, n, ww, i, j; int mon[1005], w[1005]; cin >> t; while(t--) { cin >> n >> ww; memset(dp, 0, sizeof(dp)); for(i = 1; i <= n; i++) cin >> mon[i]; for(i = 1; i <= n; i++) cin >> w[i]; for(i = n; i >= 1; i--) { for(j = 0; j <= ww; j++) { if(j < w[i]) dp[i][j] = dp[i + 1][j]; else dp[i][j] = max(dp[i + 1][j], dp[i + 1][j - w[i]] + mon[i]); } } cout<<dp[1][ww]<<endl; } return 0;}
阅读全文
0 0
- HDU 2602 Bone Collector (0-1背包)
- hdu 2602 Bone Collector(0/1背包)
- hdu 2602 Bone Collector (0-1背包)
- hdu 2602 Bone Collector(0-1背包)
- hdu 2602 Bone Collector 0-1背包;
- HDU 2602 Bone Collector(0 1背包)
- hdu 2602 Bone Collector(0 1背包)
- HDU 2602 Bone Collector(0/1背包)
- hdu 2602Bone Collector(0/1背包)
- HDU 2602 Bone Collector (0/1背包问题)
- hdu 2602 Bone Collector(0 1 背包简单入门)
- HDU 2602 Bone Collector (简单的0-1背包)
- HDU 2602----Bone Collector(0-1背包)
- hdu 2602 Bone Collector(0-1背包)
- HDU 2602 Bone Collector (0-1背包)
- hdu-2602-Bone Collector-(0-1背包)
- hdu 2602 Bone Collector (01背包)
- hdu 2602 Bone Collector(01背包)
- EL表达式和JSTL的总结
- 写软件运行日志的函数
- cycle GAN
- 安慰奶牛(最小生成树)
- 一份关于npm的新手指南
- hdu-2602-Bone Collector-(0-1背包)
- 【前端攻城狮之路】Angular篇
- 1067. 试密码(20)
- 图形学数学--向量
- 【XSY2138】【BZOJ1007】【HNOI2008】水平可见直线 几何 单调栈
- 划分树
- Tomcat启动时执行到Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource...时卡住
- 图片轮播
- 【微软2017年预科生计划在线编程笔试第二场 A】Queen Attack