UVA 624 CD[【01背包】(输出路径)
<题目链接>
题目大意:
你要录制时间为N的带子,给你一张CD的不同时长的轨道,求总和不大于N的录制顺序
解题分析:
01背包问题,需要注意的是如何将路径输出。
由于dp时是会不断的将前面所选物品更新的,所以我们输出路径时,应该倒序,将用过的物品减去,才能得到正确的路径。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std; const int maxn = + ;
int n,m,vis[maxn][maxn]; int main(){
while (scanf("%d %d", &m, &n) != EOF){
int arr[];
for (int i = ; i <= n; i++)
scanf("%d", &arr[i]);
int dp[maxn];
memset(dp, , sizeof(dp));
memset(vis, , sizeof(vis));
for (int i = ; i <= n; i++){
for (int j = m; j >= arr[i]; j--){
dp[j] = max(dp[j], dp[j - arr[i]] + arr[i]);
if (dp[j] == dp[j - arr[i]] + arr[i])
vis[i][j] = ; //用二维的vis[][]数组标记一下路径
}
} int j = m;
int output[maxn]; int res = ;
for (int i=n;i>=;i--){
if (vis[i][j]){
output[++res] = arr[i];
j -= arr[i];
}
}
for (int i = res; i >=; i--)
printf("%d ", output[i]);
printf("sum:%d\n", dp[m]);
}
}
UVA 624 CD[【01背包】(输出路径)的更多相关文章
- uva 624 CD 01背包打印路径
// 集训最终開始了.来到水题先 #include <cstdio> #include <cstring> #include <algorithm> #includ ...
- UVA 624 ---CD 01背包路径输出
DescriptionCD You have a long drive by car ahead. You have a tape recorder, but unfortunately your b ...
- UVA 624 - CD (01背包 + 打印物品)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- UVA 624 CD (01背包)
//路径记录方法:若是dp[j-value[i]]+value[i]>dp[j]说明拿了这个东西,标志为1, //for循环标志,发现是1,就打印出来,并把背包的容量减少,再在次容量中寻找标志: ...
- Codeforces Gym-102219 2019 ICPC Malaysia National E. Optimal Slots(01背包+输出路径)
题意:给你一个体积为\(T\)的背包,有\(n\)个物品,每个物品的价值和体积都是是\(a_{i}\),求放哪几个物品使得总价值最大,输出它们,并且输出价值的最大值. 题解:其实就是一个01背包输出路 ...
- UVA624 CD,01背包+打印路径,好题!
624 - CD 题意:一段n分钟的路程,磁带里有m首歌,每首歌有一个时间,求最多能听多少分钟的歌,并求出是拿几首歌. 思路:如果是求时常,直接用01背包即可,但设计到打印路径这里就用一个二维数组标记 ...
- vijos 1071 01背包+输出路径
描述 过年的时候,大人们最喜欢的活动,就是打牌了.xiaomengxian不会打牌,只好坐在一边看着. 这天,正当一群人打牌打得起劲的时候,突然有人喊道:“这副牌少了几张!”众人一数,果然是少了.于是 ...
- CD-----UVa624(01背包+输出路径)
CD You have a long drive by car ahead. You have a tape recorder, but unfortunately your best musi ...
- UVA 624 (0 1背包 + 打印路径)
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<ctype.h> #i ...
- UVA624(01背包记录路径)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
随机推荐
- 第5月第6天 NSOperation isConcurrent category同名覆盖
1. @implementation AFURLConnectionOperation ... - (BOOL)isConcurrent { return YES; } NSOperation调用st ...
- mysql 原理 ~ 事务隔离机制
简介: 事务隔离知多少内容 一 基础知识 1 事务特性 ACID A 原子性 C 一致性 I 隔离性 D 持久性 2 并行事务出现的问题 1 脏读 读取了其他事务未提交的数据 ...
- C 语言 register 关键字
register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率.注意是尽可能,不是绝对.你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很 ...
- Docker容器数据卷
⒈Docker容器中数据如何持久化? ①通过commit命令使容器反向为镜像 ②以容器数据卷的方式将数据抽离 ⒉容器数据卷的作用? ①容器数据的持久化 ②容器间继承.共享数据 ⒊能干嘛? 卷就是目录或 ...
- List Control控件
List Control控件 显示方式 属性[View]选择成[Report]. 添加成员变量 绑定变量:m_listCtrl 设置值 // 表头添加 m_listCtrl.SetExtendedSt ...
- 【转】Python数据类型之“序列概述与基本序列类型(Basic Sequences)”
[转]Python数据类型之“序列概述与基本序列类型(Basic Sequences)” 序列是指有序的队列,重点在"有序". 一.Python中序列的分类 Python中的序列主 ...
- py-faster-rcnn + opencv3.0.0 + ubuntu16.04配置(CPU模式)
最近开始做行人检测,因此开始接触faster-rcnn,这里贴上配置教程(亲测可行),不过是基于cpu的,蓝瘦... 参考博客:http://www.tuicool.com/articles/nYJr ...
- [转]HEX文件格式解析
1.前言 本文主要讲述keil MDK 下STM32编译生成的的HEX镜像文件格式.并说明镜像load地址是如何添加进HEX文件的. 2.keil MDK如何在HEX文件中添加load addr 通过 ...
- UML和模式应用5:细化阶段(4)--如何创建领域模型
1.前言 以当前迭代中所要设计的需求为界,创建领域模型的步骤: 1.寻找概念类 2.将其绘制为UML类图中的类 3.添加关联和属性 2.如何寻找概念类 寻找概念类有如下几种方法: 重用和修改现有的模型 ...
- ES系列一、CentOS7安装ES 6.3.1、集成IK分词器
Elasticsearch 6.3.1 地址: wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3. ...