Codevs5429 多重背包
来源:互联网 发布:我知女人心迅雷下载 编辑:程序博客网 时间:2024/06/15 06:02
题目:http://codevs.cn/problem/5429/
分析:多重背包题目
代码:
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int Tmax=7005;long long int n,m,f[Tmax];void completepack(long long int v,long long int w){ long long int i; for(i=v;i<=m;i++) f[i]=max(f[i],f[i-v]+w); return;}void zeroonepack(long long int v,long long int w){ long long int i; for(i=m;i>=v;i--) f[i]=max(f[i],f[i-v]+w); return;}void multiplepack(long long int v,long long int w,long long int num){ if(num*v>=m) { completepack(v,w); return; } long long int k=1; while(k<num) { zeroonepack(k*v,k*w); num-=k; k<<=1; } zeroonepack(num*v,num*w); return;}int main(){ int i; long long int v,w,c; scanf("%lld%lld",&n,&m); for(i=1;i<=n;i++) { scanf("%lld%lld%lld",&v,&w,&c); multiplepack(v,w,c); } printf("%lld",f[m]); return 0;}
阅读全文
0 0
- Codevs5429 多重背包
- 多重背包
- 多重背包
- 多重背包
- 多重背包
- 多重背包
- 多重背包
- 多重背包
- 多重背包
- 多重背包
- 多重背包
- 【多重背包】
- 多重背包
- 多重背包
- 多重背包
- 多重背包
- 多重背包
- 多重背包
- 丰田生产系统TPS与敏捷实践
- 自由幻想UI之鼠标跟随图标
- 折半查找,把一个数放到一个有序数组的对应位置
- HDU-2680-Choose the best route【spfa】
- 数据结构-中序遍历线索二叉树,堆排序
- Codevs5429 多重背包
- hdu5880 Family View (AC自动机)
- 我赶在国庆人流高峰前回来啦
- 多贝网 --Java后台实习生面试题
- shiro注解权限控制-5个权限注解
- 多线程题目探索
- 算法竞赛学习日记(2)——区间问题
- Error running app: Default Activity not found解决办法
- 快速理解MySQL中主键与外键的实例教程