HDU 2602 Bone Collector (01背包)
发布日期:2021-07-27 19:48:22
浏览次数:3
分类:技术文章
本文共 1897 字,大约阅读时间需要 6 分钟。
Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave …
The bone collector had a big bag with a volume of V ,and along his trip of collecting there are a lot of bones , obviously , different bone has different value and different volume, now given the each bone’s value along his trip , can you calculate out the maximum of the total value the bone collector can get ?Input
The first line contain a integer T , the number of cases. Followed by T cases , each case three lines , the first line contain two integer N , V, (N <= 1000 , V <= 1000 )representing the number of bones and the volume of his bag. And the second line contain N integers representing the value of each bone. The third line contain N integers representing the volume of each bone. Output One integer per line representing the maximum of the total value (this number will be less than 2 31). Sample Input 1 5 10 1 2 3 4 5 5 4 3 2 1 Sample Output 14大致思路:
标准的01背包,创建一个二维数组dp[i][j],i代表第i件物品,j代表剩余的背包容量。
但不知道为什么用滚动数组做就是WA。先记录一下。代码:
#include#include #include #include using namespace std;int dp[1000][1000];int main(){ int T; cin>>T; while(T--) { int N,V,value[1001],volume[1001]; cin>>N>>V; for(int i=1;i<=N;++i) cin>>value[i]; for(int i=1;i<=N;++i) cin>>volume[i]; for(int i=1;i<=V;++i){ if(volume[1]<=i) dp[1][i]=value[1]; else dp[1][i]=0; } for(int i=2;i<=N;++i){ for(int j=V;j>=0;--j){ if(j>=volume[i])//状态转移方程 dp[i][j]=max(dp[i-1][j],dp[i-1][j-volume[i]]+value[i]); else dp[i][j]=dp[i-1][j]; } } cout< <
转载地址:https://blog.csdn.net/SCaryon/article/details/61922167 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年09月14日 09时13分46秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
maven打包本地依赖包
2019-05-27
spring boot jpa 实现拦截器
2019-05-27
jenkins + maven+ gitlab 自动化部署
2019-05-27
Pull Request流程
2019-05-27
Lambda 表达式
2019-05-27
函数式数据处理(一)--流
2019-05-27
java 流使用
2019-05-27
java 用流收集数据
2019-05-27
java并行流
2019-05-27
CompletableFuture 组合式异步编程
2019-05-27
mysql查询某一个字段是否包含中文字符
2019-05-27
Java中equals和==的区别
2019-05-27
JVM内存管理及GC机制
2019-05-27
Java:按值传递还是按引用传递详细解说
2019-05-27
Java中Synchronized的用法
2019-05-27
阻塞队列
2019-05-27
linux的基础知识
2019-05-27
接口技术原理
2019-05-27
五大串口的基本原理
2019-05-27
PCB设计技巧与注意事项
2019-05-27