(动态规划 01背包 打印路径) CD --UVA --624
链接:
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87813#problem/G
每个CD的时间不超过 20
没有哪个CD的时间是超过N的
CD不能重复
每个长度和N都是一个整数
代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<queue>
#include<algorithm>
using namespace std;
#define N 2000
#define INF 0xfffffff int v[N], dp[N][N]; void Path(int n, int W)
{
if(n==)
return ;
if(dp[n][W]==dp[n-][W])
Path(n-, W);
else
{
Path(n-, W-v[n]);
printf("%d ", v[n]);
}
} int main()
{
int W, n, i, j;
while(scanf("%d%d", &W, &n)!=EOF)
{
memset(v, , sizeof(v));
memset(dp, , sizeof(dp)); for(i=; i<=n; i++)
scanf("%d", &v[i]); for(i=; i<=n; i++)
for(j=; j<=W; j++)
{
if(j<v[i])
dp[i][j] = dp[i-][j];
else
{
dp[i][j] = max(dp[i-][j], dp[i-][j-v[i]]+v[i]);
}
} Path(n, W); printf("sum:%d\n", dp[n][W]); }
return ;
}
DP思路:dp[i] 代表第 i 个箱子在最上方的时候所摞起来的最大高度。
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<queue>
#include<cmath>
using namespace std;
#define INF 0x3fffffff
#define maxn 100200
typedef long long LL;
struct Box
{
int L, W, H;///箱子的长宽高
Box(int LL=,int WW=,int HH=):L(LL), W(WW), H(HH)
{
if(L<W)swap(L,W);
}
bool friend operator < (Box A, Box B)
{
if(A.L != B.L)
return A.L > B.L;
if(A.W != B.W)
return A.W > B.W;
return A.H > B.H;
}
}P[maxn];
int dp[maxn];
int main()
{
int i, j, cas = , n;
while(scanf("%d",&n), n)
{
int k = , ans = ;
for(i=; i<n; i++)
{
int L, W, H;
scanf("%d %d %d",&L, &W, &H);
P[k ++] = Box(L, W, H);
P[k ++] = Box(L, H, W);
P[k ++] = Box(W, H, L);
}
sort(P, P+k); for(i=; i<k; i++)
{
dp[i] = P[i].H;
for(j=; j<i; j++)
{
if(P[i].L < P[j].L && P[i].W < P[j].W)
dp[i] = max(dp[i], dp[j] + P[i].H);
}
ans = max(ans, dp[i]);
} printf("Case %d: maximum height = %d\n", cas ++, ans);
}
return ;
}
(动态规划 01背包 打印路径) CD --UVA --624的更多相关文章
- UVA624 CD,01背包+打印路径,好题!
624 - CD 题意:一段n分钟的路程,磁带里有m首歌,每首歌有一个时间,求最多能听多少分钟的歌,并求出是拿几首歌. 思路:如果是求时常,直接用01背包即可,但设计到打印路径这里就用一个二维数组标记 ...
- uva 624 CD 01背包打印路径
// 集训最终開始了.来到水题先 #include <cstdio> #include <cstring> #include <algorithm> #includ ...
- UVA624(01背包记录路径)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- Codeforces 2016 ACM Amman Collegiate Programming Contest A. Coins(动态规划/01背包变形)
传送门 Description Hasan and Bahosain want to buy a new video game, they want to share the expenses. Ha ...
- Codeforces Gym-102219 2019 ICPC Malaysia National E. Optimal Slots(01背包+输出路径)
题意:给你一个体积为\(T\)的背包,有\(n\)个物品,每个物品的价值和体积都是是\(a_{i}\),求放哪几个物品使得总价值最大,输出它们,并且输出价值的最大值. 题解:其实就是一个01背包输出路 ...
- UVA 624 - CD (01背包 + 打印物品)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- UVA 624 (0 1背包 + 打印路径)
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<ctype.h> #i ...
- HDU 6083 度度熊的午饭时光(01背包+记录路径)
http://acm.hdu.edu.cn/showproblem.php?pid=6083 题意: 思路: 01背包+路径记录. 题目有点坑,我一开始逆序枚举菜品,然后一直WA,可能这样的话路径记录 ...
- vijos 1071 01背包+输出路径
描述 过年的时候,大人们最喜欢的活动,就是打牌了.xiaomengxian不会打牌,只好坐在一边看着. 这天,正当一群人打牌打得起劲的时候,突然有人喊道:“这副牌少了几张!”众人一数,果然是少了.于是 ...
随机推荐
- Servlet Request 请求转发
request.getRequestDispatcher("logined.jsp").forward(request, response); //登录用户在登录页面验证通过 ...
- ubuntu 软件包系统已损坏 解决方法
sudo apt-get clean sudo apt-get -f install sudo apt-get upgrade
- 打地鼠Demo
using UnityEngine; using System.Collections; public enum MoleStates { NormalState,// 初始状态 UpState,// ...
- SVM总结(转)
支持向量机 看了JULY君的博客和文档后,个人对SVM的理解和总结,欢迎交流和指正.其理论部分可以查看下面文档链接,通俗易懂. 支持向量机通俗导论(理解SVM的三层境界) 第一篇:从四个关键词 ...
- Python中类的定义与使用
目标: 1.类的定义 2.父类,子类定义,以及子类调用父类 3.类的组合使用 4.内置功能 1.类的定义 代码如下: #!/usr/bin/env python #coding:utf8 class ...
- runtime - 2 - 使用私有方法
1. 创建 一个person类, 有对象方法, 私有化方法 2. 在h 文件里面 - (void)eat; //- (void)run:(NSInteger)metre; 3. 在m文件里面 -(vo ...
- Centos7 安装MySQL8.0.15
1.删除原有的mariadb,不然mysql装不进去 mariadb-libs-5.5.52-1.el7.x86_64 rpm -qa|grep mariadb rpm -e --nodeps mar ...
- 分析maven的优点
1.依赖管理: 就是对jar包的管理. 2.项目的一键构建: 编译--->测试--->运行--->打包--->安装 运行一个maven工程(web工程)只需要一个命令:toma ...
- 201621123008 《Java程序设计》第六周实验总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 2. 书面作业 1. clone方法 1.1 在 ...
- win7安装qt5 纯记录 水文
去qt官网下载http://www.qt.io/看见download就点进去看看吧 目前的下载地址路径是http://www.qt.io/download-open-source选择Offline I ...