hdu 2546 01背包(从一堆物品中尽可能组成接近给定重量的方案)
来源:互联网 发布:一线城市 知乎 编辑:程序博客网 时间:2024/05/19 16:36
#include<cstdio>#include<cstring>#include<algorithm>#define MAX(x,y) ((x)>(y)?(x):(y))#define MIN(x,y) ((x)>(y)?(y):(x))using namespace std;int dp[1010];int c[1010];int main(){int n,col;while(~scanf("%d",&n)&&n){memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++)scanf("%d",&c[i]);scanf("%d",&col);if(col<5)printf("%d\n",col);else{ sort(c+1,c+1+n);for(int i=1;i<=n-1;i++){for(int j=col-5;j>=c[i];j--){dp[j]=MAX(dp[j],dp[j-c[i]]+c[i]);}} printf("%d\n",col-c[n]-dp[col-5]); }}}
0 0
- hdu 2546 01背包(从一堆物品中尽可能组成接近给定重量的方案)
- 给定N中物品和一个背包。物品i的重量是Wi,其价值位Vi ,背包的容量为C。问应该如何选择装入背包的物品,使得转入背包的物品的总价值为最大?对每种物品i只有两种选择,即装入背包和不装入背包
- 0-1背包中每个物品重量和价值值都很小的情况
- 把一堆数字分成两堆,使两堆的和尽可能接近
- 给定一个数组,按序排列,从数组找出若干个数,使得这若干个数字的和与M最为接近,(背包问题)
- 从一堆(大量的)无序不重复数组成的数组中寻找一指定数出现的位置
- 输出01背包内物品的程序
- 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使
- hdu 2191 多重背包(物品的件数固定)
- 背包问题——“01背包”详解及实现(包含背包中具体物品的求解)
- 背包问题——“01背包”详解及实现(包含背包中具体物品的求解)
- 背包问题——“01背包”详解及实现(包含背包中具体物品的求解)
- 背包问题——“01背包”详解及实现(包含背包中具体物品的求解)
- 寻找接近给定和的若干个数
- 背包系统中,交换两个物品的位置
- ★★★★★背包问题——“01背包”"完全背包"详解及实现(包含背包中具体物品的求解)
- (hdu step 3.3.1)Big Event in HDU(01背包:N件物品放在容量为V的背包中,第i件物品的费用是c[i],价值是w[i]。问所能获取的最大价值)
- 泛化物品的背包问题
- app随着光照强度变化总结
- 那些不能遗忘的知识点回顾——C/C++系列(笔试面试高频题)
- c#关于数组和多态的简单使用
- myeclipse中部署项目到tomcat失败解决办法(错误:If a file is locked ...)
- JS的转换HTML转义符
- hdu 2546 01背包(从一堆物品中尽可能组成接近给定重量的方案)
- 腾讯课堂——IMWeb训练营: Day4 作业
- Android--推送机制实现原理(二)-自己实现推送功能
- XTU 1243 2016 (大数取模+快速幂)
- Win7 64为Sublime Text3 配置python3的开发环境的方法
- C#注册表操作学习
- 京东面试题
- absolute与relative怎么区分
- 5-31 字符串循环左移 (20分)