HDU 2602 Bone Collector(dp)
来源:互联网 发布:淘宝联盟推广赚钱 编辑:程序博客网 时间:2024/05/16 12:21
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=2602
一道简单的0-1背包问题,初次学习动态规划,作简单总结。
题目大意:有个人爱收集一些化石,每种化石都有相应的体积和价值,这个人有一个容量为V的背包,求这个包所装进化石的最大价值为多少。
输入:
T个实例
N种化石,背包容量为V
每种化石的价值
每种化石的体积
输出:
最大价值
code:
#include<stdio.h>#include<string.h>#include<iostream>using namespace std;int dp[1001];struct node{int val;int vol;}a[1001];int main(){int i,T,N,V;cin>>T;while(T--){cin>>N>>V;for(i=1;i<=N;i++)cin>>a[i].val;for(i=1;i<=N;i++)cin>>a[i].vol;for(i=1;i<=N;i++)for(int j=V;j>=a[i].vol;j--) dp[j]=max(dp[j],dp[j-a[i].vol]+a[i].val);cout<<dp[V]<<endl;}return 0;}
“将前i件物品放入容量为v的背包中”这个子问题,若只考虑第i件物品的策略(放或不放),那么就可以转化为一个只牵扯前i件物品的问题。如果不放第i件物品,那么问题就转化为“前i件物品放入容量为v的背包中”,价值为dp[j];如果放第i件物品,那么问题就转化为“前i件物品放入剩下的容量为j-vol[i]的背包中”,此时能获得的最大价值就是dp[j-vol[i]]再加上通过放入第i件物品获得的价值val[i]。
0 0
- hdu 2602 Bone Collector--DP
- HDU 2602 Bone Collector ( DP )
- HDU 2602 Bone Collector(dp)
- DP——Hdu 2602 Bone Collector
- 【DP|01背包】HDU-2602 Bone Collector
- HDU 2602 Bone Collector(DP:01背包)
- hdu 2602 Bone Collector 01背包 dp
- hdu 2602 Bone Collector(经典dp)
- HDU 2602 Bone Collector(dp)
- 【HDU 2602】Bone Collector(DP-01背包)
- 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
- inline函数
- 一种resultMap包含了其他查询
- XSS跨站攻击
- ajax传递数组、form表单提交对象数组
- Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit:
- HDU 2602 Bone Collector(dp)
- 安全测试之忘记密码存在的问题
- Java 中常用的工具类(1)
- 谱聚类算法(Spectral Clustering)
- Android读取图片当中的信息exif
- ios 性能优化一些比较好的资源
- JavaScript之正则表达式
- Codeforces 625E Frog Fights (Codeforces Round #342 (Div. 2) E) 题解
- canal安装及使用