NYOJ 860 又见01背包
-
有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W的物品,求所有挑选方案中物品价值总和的最大值。1 <= n <=1001 <= wi <= 10^71 <= vi <= 1001 <= W <= 10^9
- 输入
-
多组测试数据。
每组测试数据第一行输入,n 和 W ,接下来有n行,每行输入两个数,代表第i个物品的wi 和 vi。 - 输出
- 满足题意的最大价值,每组测试数据占一行。
- 样例输入
-
4 5 2 3 1 2 3 4 2 2
- 样例输出
-
7思路:由于重量太大不可能开重量的数组,所以我们可以这样考虑,求当前价值下的最小重量,这样的话问题就简单解决了;
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cstring> 5 using namespace std; 6 const int MAX = 0x3fffffff; 7 const int N = 1e4+10; 8 struct T 9 { 10 int wi,vi; 11 }ma[110]; 12 long long dp[N]; 13 int main() 14 { 15 int n , W, M; 16 while(scanf("%d %d",&n,&W) !=EOF) 17 { 18 M = 0; 19 fill(dp,dp+N,MAX); 20 for(int i = 1;i<=n ; i++) 21 { 22 scanf("%d%d",&ma[i].wi,&ma[i].vi); 23 M = ma[i].vi + M; 24 } 25 dp[0] = 0; 26 //常用的01背包 27 for(int i = 1; i<=n; i++) 28 for(int j = M; j>=ma[i].vi; j--) 29 { 30 dp[j] = min(dp[j],dp[j-ma[i].vi]+ma[i].wi); 31 } 32 int ans = 0; 33 for(int i = M; i>=0; i--) 34 { 35 if(dp[i]<=W) {ans = i;break;}//从最大的价值开始遍历,最大价值不会超过1w 36 } 37 printf("%d\n",ans); 38 } 39 return 0; 40 }
转载于:https://www.cnblogs.com/lovychen/p/4424016.html
NYOJ 860 又见01背包相关推荐
- 【nyoj - 860】 又见0-1背包 (dp,反向0-1背包,好题好思路)
题干: 又见01背包 时间限制:1000 ms | 内存限制:65535 KB 难度:3 输入 多组测试数据. 每组测试数据第一行输入,n 和 W ,接下来有n行,每行输入两个数,代表第i个物品的 ...
- nyoj 203 三国志 dijkstra+01背包
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=203 思路:先求点0到每个点的最短距离,dijkstra算法,然后就是01背包了 我奇怪的 ...
- NYOJ 289 苹果(01背包)
苹果 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 ctest有n个苹果,要将它放入容量为v的背包.给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值. 输 ...
- 【 FZU - 2214 】Knapsack problem(逆向0-1背包)
题干: Given a set of n items, each with a weight w[i] and a value v[i], determine a way to choose the ...
- Jam's balance HDU - 5616 (01背包基础题)
Jim has a balance and N weights. (1≤N≤20) The balance can only tell whether things on different side ...
- 【01背包】最大约数和(jzoj 2126)
最大约数和 题目大意: 选若干个正整数,和不小于S,使每个数的因数(不包括本身)之和最大 样例输入 11 样例输出 9 数据范围限制 对于30%的数据, S<=10: 对于100%的数据, S ...
- 【NOIP2006】【Luogu1060】开心的金明(01背包模板)
problem 有n个物品,价格为wi, 重要度为vi. 在代价不超过m的情况下,最大化wi*vi的值 n < 30, m < 3e4 solution Qwq,Wi*Vi是确定的. 所以 ...
- 01背包总结+传授个人经验
写在前面: 自从学了背包这个专题,感觉永远也写不完,之前写了三种类型的01背包,结果现在发现都是简单的01背包.后来又学了多重背包.完全背包,其中多重背包还可以进行二进制优化. 本文将对这几种常见的背 ...
- 【01背包记录路径】东东开车了
题面 东东开车出去泡妞(在梦中),车内提供了 n 张CD唱片,已知东东开车的时间是 n 分钟,他该如何去选择唱片去消磨这无聊的时间呢 假设: CD数量不超过20张 没有一张CD唱片超过 N 分钟 每张 ...
最新文章
- 搜索引擎惩罚的五种最大原因
- jquery.form 和MVC4做无刷新上传DEMO
- ubuntu彻底卸载软件
- 流氓ONU问题分析和处理
- OpenCV3.1.0+VS2015开发环境配置
- x86汇编语言——基本概念
- Linux下tomcat无法启动/启动后无法用过127.0.0.1:8080访问解决方案
- 遇到一个valgrind自身的bug
- VC6.0的工程设置解读Project--Settings
- Python urllib – Python 3 urllib
- 苹果mac专业音频处理软件:Audition
- IO负载高的来源定位
- 为什么Stc-isp一直在检测单片机
- 关于attachEvent与addEventListener事件绑定兼容问题
- Android多进程从头讲到尾,成功定级腾讯T3-2
- word删除页眉线,添加第几页共几页
- 解决tomcat在pycharm中的初始化报错“ Failed to transfer file”“could not create folder”“(Permission denied)”
- 荣耀70什么时候发布 荣耀70发布时间曝光
- 合肥市直计算机知识pdf,事业单位计算机专业知识整理(全)-20210419115129.pdf-原创力文档...
- Mac无法安装第三方软件
热门文章
- 面经:为了拿到字节跳动offer,鬼知道我经历了啥...
- SpringBoot第七篇:springboot开启声明式事务
- 这是一份不完整的数据竞赛年鉴
- Nature | 复旦大学把衣服变成了显示器,能聊天能导航,水洗弯折都不怕
- 使用谷歌Colab Notebooks,这6个小技巧你需要掌握
- 陶哲轩之后,有人在这个猜想的证明之路上又前进了一步
- 福利,PyTorch中文版官方教程来啦(附下载)
- 重磅:2019年全国普通高校学科竞赛排行榜出炉!
- leveldb源码分析:数据查询
- Python3.5源码分析-sys模块及site模块导入