UVA 624 (0 1背包 + 打印路径)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
#include<algorithm>
#define N 1010 using namespace std; int dp[N], path[N][N], w[N]; int main()
{
int v, n;
while(~scanf("%d", &v))
{
scanf("%d", &n);
memset(dp, , sizeof(dp));
memset(path, , sizeof(path));
for(int i = ; i <= n ;i++)
scanf("%d", &w[i]);
for(int i = n ; i >= ; i--)
{
for(int j = v ; j >= w[i] ; j--)
{
if(dp[j] <= dp[j - w[i]] + w[i])
{
dp[j] = dp[j - w[i]] + w[i];
path[i][j] = ;
}//path记录
}
}
int j = v;
for(int i = ; i <= n ; i++)
{
if(path[i][j])
{
printf("%d ", w[i]);
j -= w[i];
}
}//打印路径
printf("sum:%d\n", dp[v]);
}
return ;
}
UVA 624 (0 1背包 + 打印路径)的更多相关文章
- uva 624 CD 01背包打印路径
		
// 集训最终開始了.来到水题先 #include <cstdio> #include <cstring> #include <algorithm> #includ ...
 - UVA 624 - CD (01背包 + 打印物品)
		
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
 - UVA 624 ---CD  01背包路径输出
		
DescriptionCD You have a long drive by car ahead. You have a tape recorder, but unfortunately your b ...
 - UVA624 CD,01背包+打印路径,好题!
		
624 - CD 题意:一段n分钟的路程,磁带里有m首歌,每首歌有一个时间,求最多能听多少分钟的歌,并求出是拿几首歌. 思路:如果是求时常,直接用01背包即可,但设计到打印路径这里就用一个二维数组标记 ...
 - UVA 1626 区间dp、打印路径
		
uva 紫书例题,这个区间dp最容易错的应该是(S)这种匹配情况,如果不是题目中给了提示我就忽略了,只想着左右分割忘记了这种特殊的例子. dp[i][j]=MIN{dp[i+1][j-1] | if( ...
 - UVA 531 - Compromise(dp + LCS打印路径)
		
Compromise In a few months the European Currency Union will become a reality. However, to join th ...
 - (动态规划 01背包   打印路径) CD --UVA --624
		
链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87813#problem/G 每个CD的时间不超过 20没有哪个CD的时间是超过N ...
 - UVA 624 CD (01背包)
		
//路径记录方法:若是dp[j-value[i]]+value[i]>dp[j]说明拿了这个东西,标志为1, //for循环标志,发现是1,就打印出来,并把背包的容量减少,再在次容量中寻找标志: ...
 - UVA624(01背包记录路径)
		
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
 
随机推荐
- HDU 1564 (博弈) Play a game
			
这道题的答案猜也很好猜出来,但是想太难想了..题解一贴,然后闪人.. 请戳这
 - Drawable和Bitmap的区别
			
Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565.RGB888.作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低.我们理解为一种存储对象比较好 ...
 - 如何使用 Java 中的数组
			
Java 中操作数组只需要四个步骤: 1. 声明数组 语法: 数据类型[ ] 数组名: 或者 数据类型 数组名[ ]: 其中,数组名可以是任意合法的变量名,如: 2. 分配空间 简单地说,就是指 ...
 - 通过反射执行get、set方法
			
Class clazz = sourceObj.getClass(); 1.获取所有属性 BeanInfo beanInfo = Introspector.getBeanInfo(clazz); Pr ...
 - 可以用google了
			
半年都上不了google,现在可以了, 哈哈,支持自动更新, 有时候用google还是很不错的,尤其是英文搜索.
 - PHP开发规范
			
十.开发规范下面我们讲解 Yii 编程中推荐的开发规范.为简单起见,我们假设 WebRoot 是 Yii 应用安装的目录.1.URL默认情况下,Yii 识别如下格式的 URL: http://host ...
 - hihocoder 1356  分隔相同整数 简单贪心
			
分析:考虑贪心,考虑填ans[i],前i-1个合法,现在剩下一些数, 那么挑出出现次数最多的数,次数为mx,当前剩余总数为sum 如果sum-mx>=mx-1那么肯定有解,这个想想就知道了(这种 ...
 - 用DzzOffice管理阿里云OSS
			
在DzzOffice分两种方式管理阿里云OSS 1.把阿里云oss作为多人或企业的共享网盘使用. 2.接入个人的阿里云oss管理,可同时管理多个bucket,多个bucket之间可以互传文件. 下面先 ...
 - R 安装与环境配置
			
R语言是一种很方便的应用于科学计算的语言,推荐给大家学习. 由于R的版本对程序包的兼容有些问题,推荐使用2.15.3. 下面给出下载链接,安装一路默认即可,可以自己更存放目录,其他的都没有影响.下面是 ...
 - 自学Java过程
			
由于之前判断失误,其实也不应该说失误吧,自己脱产花了几个月来啃C,现在基本上算是啃完了吧,之所以说失误是因为:没有找到跟C有关的适合我的工作!!! 本来的打算是先把基础搞定然后去找找看有没有肯收留打杂 ...