hdu 2602 Bone Collector
来源:互联网 发布:淘宝店铺无法订购花呗 编辑:程序博客网 时间:2024/06/15 04:58
我们看到的求最优解的背包问题题目中,事实上有两种不太相同的问法。有的题目要求“恰好装满背包”时的最优解,有的题目则并没有要求必须把背包装满。一种区别这两种问法的实现方法是在初始化的时候有所不同。
如果是第一种问法,要求恰好装满背包,那么在初始化时除了f[0]为0其它f[1..V]均设为-∞,这样就可以保证最终得到的f[N]是一种恰好装满背包的最优解。
如果并没有要求必须把背包装满,而是只希望价格尽量大,初始化时应该将f[0..V]全部设为0。
一维数组:
#include<iostream>#include<string.h>using namespace std;struct Node{ int m; int v;}d[1005];int f[1005];int main(){ int t,i,j; cin>>t; while(t--) { memset(f,0,sizeof(f)); int num,sum; cin>>num>>sum; for(i=1;i<=num;i++) cin>>d[i].m; for(j=1;j<=num;j++) cin>>d[j].v; for(i=1;i<=num;i++) { for(j=sum;j>=d[i].v;j--) { int a=f[j]; int b=f[j-d[i].v]+d[i].m; f[j]=a>b?a:b; } } cout<<f[sum]<<endl; } return 0;}二维数组:
#include<iostream>#include<string.h>using namespace std;int val[1005];int vol[1005];int dp[1005][1005];int main(){ int t; cin>>t; memset(dp,0,sizeof(dp)); while(t--) { int n,v,i,j; cin>>n>>v; for(i=1;i<=n;i++) cin>>val[i]; for(i=1;i<=n;i++) cin>>vol[i]; /*for(i=1;i<=n;i++) for(j=0;j<=v;j++) { if(j>=vol[i]&&dp[i-1][j]<dp[i-1][j-vol[i]]+val[i]) dp[i][j]=dp[i-1][j-vol[i]]+val[i]; else dp[i][j]=dp[i-1][j]; } cout<<dp[n][v]<<endl;*/ for(i=0;i<=v;i++) for(j=1;j<=n;j++) { if(vol[j]<=i && dp[i][j-1]<dp[i-vol[j]][j-1]+val[j]) dp[i][j]=dp[i-vol[j]][j-1]+val[j]; else dp[i][j]=dp[i][j-1]; } cout<<dp[v][n]<<endl; } return 0;}
- HDU 2602 Bone Collector
- hdu 2602 Bone Collector
- hdu 2602 Bone Collector
- hdu 2602 Bone Collector
- HDU 2602 - Bone Collector
- HDU 2602 Bone Collector
- hdu 2602 Bone Collector
- HDU 2602 Bone Collector
- hdu 2602 Bone Collector
- hdu 2602 Bone Collector
- Hdu 2602 - Bone Collector
- hdu 2602 Bone Collector
- hdu 2602 Bone Collector
- Hdu 2602 Bone Collector
- Hdu 2602 Bone Collector
- hdu 2602 Bone Collector
- hdu - 2602 - Bone Collector
- hdu 2602 Bone Collector
- LeetCode —— Best Time to Buy and Sell Stock III
- 2013 多校第五场 hdu 4648 Magic Pen 6
- IOS学习之路七(通过xib自定义UITableViewCell)
- android:background
- uva 565 Pizza Anyone?(二进制+搜索)
- hdu 2602 Bone Collector
- 什么是数据库分表技术
- strictmode
- HDU 4649 Professor Tian (2013多校联合5 1007)
- [leetcode刷题系列]First Missing Positive
- HDU 1070 Milk
- ARM高分笔记--(三)ARM寻址方式
- 数据结构--树和二叉树
- squid---StatCounters.h