[codevs3269]混合背包
题目大意:一道混合背包模板。
解题思路:分三种情况讨论,01和完全没什么问题,多重背包需要把物品分成$\log W[i]$件,然后01即可,分成W[i]件01会TLE。
读优大法好!
C++ Code:
- #include<cstdio>
- #include<cctype>
- using namespace std;
- #define max(i,j)(((i)>(j))?(i):(j))
- char buf[4000004];
- int bufpos;
- inline void init(){
- bufpos=0;
- buf[fread(buf,1,4000000,stdin)]='\0';
- }
- inline int readint(){
- int p=0,flag=false;
- for(;!isdigit(buf[bufpos]);bufpos++)flag=(buf[bufpos]=='-');
- for(;isdigit(buf[bufpos]);bufpos++)
- p=(p<<3)+(p<<1)+buf[bufpos]-'0';
- return (flag)?(-p):(p);
- }
- int n,v,f[200002];
- int main(){
- init();
- n=readint(),v=readint();
- while(n--){
- int V=readint(),W=readint(),M=readint();
- if(M==1)
- for(int i=v;i>=V;--i)
- f[i]=max(f[i],f[i-V]+W);
- else
- if(M==-1)
- for(int i=V;i<=v;++i)
- f[i]=max(f[i],f[i-V]+W);
- else{
- int k=1,p=1;
- while(p<=M){
- for(int i=v;i>=V*k;--i)
- f[i]=max(f[i],f[i-V*k]+W*k);
- p+=(k*=2);
- }
- p=M-p+k;
- for(int i=v;i>=V*p;--i)
- f[i]=max(f[i],f[i-V*p]+W*p);
- }
- }
- printf("%d\n",f[v]);
- return 0;
- }
[codevs3269]混合背包的更多相关文章
- codevs3269 混合背包 x
3269 混合背包 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 背包体积为V ,给出N个物品,每个物品占用体积为 ...
- CODEVS3269混合背包+二进制优化
codevs 3296 http://codevs.cn/problem/3269/ 题目描述 Description 背包体积为V ,给出N个物品,每个物品占用体积为Vi,价值为Wi,每个物品要么至 ...
- HDU 3535 AreYouBusy (混合背包)
题意:给你n组物品和自己有的价值s,每组有l个物品和有一种类型: 0:此组中最少选择一个 1:此组中最多选择一个 2:此组随便选 每种物品有两个值:是需要价值ci,可获得乐趣gi 问在满足条件的情况下 ...
- HDU 3535 分组混合背包
http://acm.hdu.edu.cn/showproblem.php?pid=3535 题意:有n组工作,T时间,每个工作组中有m个工作,改组分类是s,s是0是组内至少要做一件,是1时最多做一件 ...
- Codevs 3269 混合背包(二进制优化)
3269 混合背包 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description 背包体积为V ,给出N个物品,每个物品占用体积为V ...
- HDU 3535 AreYouBusy(混合背包)
HDU3535 AreYouBusy(混合背包) http://acm.hdu.edu.cn/showproblem.php?pid=3535 题意: 给你n个工作集合,给你T的时间去做它们.给你m和 ...
- codevs 3269 混合背包(复习混合背包)
传送门 [题目大意]给出物品的数量.-1为无限个. [思路]混合背包.... [code] #include<iostream> #include<cstdio> #inclu ...
- HDU3535 AreYouBusy 混合背包
题目大意 给出几组物品的体积和价值,每组分为三种:0.组内物品至少选一个:1.组内物品最多选一个:2.组内物品任意选.给出背包容量,求所能得到的最大价值. 注意 仔细审题,把样例好好看完了再答题,否则 ...
- CODE[VS] 3269 混合背包
3269 混合背包 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 背包体积为V ,给出N ...
随机推荐
- 为什么叫Unity3d为脚本语言
初接触Unity,看到大家说的都是工作主要是写脚本语言. 一直纳闷为什么说脚本语言呢,c#可不是脚本语言啊. -- -- 后来释然,说它是脚本语言是因为传统程序都是由代码构成的(像iOS.Androi ...
- Python安装遇到的问题
1.import MySQLdb 错误 导入MySQLdb模块时报错: >>> import MySQLdb Traceback (most recent call last): ...
- List of features and minimum Clang version with support
#1: C++11 Language Feature C++11 Proposal Available in Clang? Rvalue references N2118 Clang 2.9 ...
- Git diff 代码比较的高级技巧
Git diff 代码比较的高级技巧 作者:offbye 出处:http://blog.csdn.net/offbye/article/details/6592563 Git是使用branch来管理不 ...
- ThoughtWorks 技术雷达(2013年5月)
ThoughtWorks技术雷达(2013年5月) 作者ThoughtWorks技术战略委员会 发布于 六月 25, 2013| 讨论 新浪微博腾讯微博 豆瓣网 Twitter Facebook li ...
- jquery中的jsonp跨域调用(接口)
jquery jsonp跨域调用接口
- 【【henuacm2016级暑期训练】动态规划专题 D】Writing Code
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 二维费用背包. f[i][j][k] 前i个人,写了j行,bug不超过k的方案数. 可以把每个人看成是一个物品. 它可以无限拿.然后 ...
- [POJ3233]Matrix Power Series 分治+矩阵
本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia [POJ3233]Matrix Power Series 分治+矩阵 题目大意 A为n×n(n<= ...
- ASP.NET-POSTBACK是什么
当我们直接从服务端读取网页时,表时此网页并没有post(提交),当用户再次提交表单时,就会把此网页的相关参数传给服务器处理,对于服务器来说就是一个postback(提交返回),即提交回来了.这就是po ...
- iOS 开发仿网易云音乐歌词海报
使用网易云音乐也是一个巧合,我之前一直使用QQ音乐听歌,前几天下 app 手机内存告急.于是就把QQ音乐给卸载掉了,正好晚上朋友圈里有一个朋友用网易云音乐分享了一首歌曲,于是我也就尝试下载了网易云音乐 ...