混合背包(不完美的、比较low的)
来源:互联网 发布:淘宝客定向计划描述 编辑:程序博客网 时间:2024/06/04 19:14
主要是:将多重背包拆成01背包。
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<queue>using namespace std;int w[3000],c[3000],p[3000],f[3000];int main(){ //freopen("mix.in","r",stdin); //freopen("mix.out","w",stdout); int n,m; int ln=0; scanf("%d%d",&m,&n); for(int i=1;i<=n;i++) { int w0,c0,p0; scanf("%d%d%d",&w0,&c0,&p0); if(p0>1) { while(p0>0)//次数要弄对,拆成01背包 w[++ln]=w0,c[ln]=c0,p[ln]=1,p0--; } else { w[++ln]=w0; c[ln]=c0; p[ln]=p0; } } for(int i=1;i<=ln;i++) { if(p[i]==1) { for(int j=m;j>=w[i];j--) f[j]=max(f[j],f[j-w[i]]+c[i]); } else if(p[i]==0) { for(int j=w[i];j<=m;j++) f[j]=max(f[j],f[j-w[i]]+c[i]); } } printf("%d",f[m]); fclose(stdin);fclose(stdout); return 0;}
1 0
- 混合背包(不完美的、比较low的)
- 混合背包+多重背包的二进制优化
- Pascal混合字符串的比较
- 比较完美的SqlHelper类
- 第一次写存储过程,写的比较low,请怜惜
- HDU 3535(AreYouBusy)组合背包的混合背包
- http请求的8种方式(不知道个几种是不是太low了)
- 男人都是不完美的
- 不完美的Google之一
- 接受不完美的自己
- 不完美的程序锁
- 接纳不完美的自己
- 不完美的软件锁
- 感谢自己的不完美
- 接收不完美的勇气
- 分割字符串的比较完美实现(c++,stl)
- 比较完美的清除浮动的方法
- 完美处理unicode码与其他字符串混合的字符串
- nginx配置location总结及rewrite规则写法
- 混合背包模板
- double类型的运算
- freeswitch函数之zstr
- Android中overridePendingTransition()方法偶尔失效
- 混合背包(不完美的、比较low的)
- 412.leetciode Fizz Buzz(easy)[字符串 整数处理]
- job 作业实例
- ROS基础使用
- 程序不能运行
- 多线程下载、断点续传、进度条展示
- Dosbox安装Windows 95图文教学
- Android6.0运行时权限管理
- VirtualBox + CentOS7 安装PHP运行环境(三)