博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51 Nod 1086 多重背包问题(单调队列优化)
阅读量:5107 次
发布时间:2019-06-13

本文共 862 字,大约阅读时间需要 2 分钟。

 

基准时间限制:1 秒 空间限制:131072 KB 分值: 40 

 收藏

 关注

有N种物品,每种物品的数量为C1,C2......Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2......Wn(Wi为整数),与之相对应的价值为P1,P2......Pn(Pi为整数)。求背包能够容纳的最大价值。

Input

第1行,2个整数,N和W中间用空格隔开。N为物品的种类,W为背包的容量。(1 <= N <= 100,1 <= W <= 50000)第2 - N + 1行,每行3个整数,Wi,Pi和Ci分别是物品体积、价值和数量。(1 <= Wi, Pi <= 10000, 1 <= Ci <= 200)

Output

输出可以容纳的最大价值。

Input示例

3 62 2 53 3 81 4 1

Output示例

9
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3fusing namespace std;typedef long long ll;int n,W;int w[105];//体积int v[105];//价值int cnt[105];//数量int dp[50005];int deq[50005];//双端队列(保存数组下标)int deqv[50005];//双端队列(保存值)void solve(){ for(int i=1;i<=n;i++){ for(int a=0;a

 

转载于:https://www.cnblogs.com/linruier/p/9588291.html

你可能感兴趣的文章
北漂周记--第5记--拼命编程
查看>>
比赛总结一
查看>>
SpringBoot项目打包
查看>>
JSP的3种方式实现radio ,checkBox,select的默认选择值
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
《QQ欢乐斗地主》山寨版
查看>>
文件流的使用以及序列化和反序列化的方法使用
查看>>
Android-多线程AsyncTask
查看>>
第一个Spring冲刺周期团队进展报告
查看>>
C++函数基础知识
查看>>
红黑树 c++ 实现
查看>>
Android 获取网络链接类型
查看>>
报表服务框架:WEB前端UI
查看>>
5.9UDP客户端服务器-基于OK6410
查看>>
java自学基础、项目实战网站推荐
查看>>
软件包的使用
查看>>
linux中启动与终止lnmp的脚本
查看>>
gdb中信号的处理[转]
查看>>
学习Javascript闭包(Closure)
查看>>
LeetCode【709. 转换成小写字母】
查看>>