链接:

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的更多相关文章

  1. UVA624 CD,01背包+打印路径,好题!

    624 - CD 题意:一段n分钟的路程,磁带里有m首歌,每首歌有一个时间,求最多能听多少分钟的歌,并求出是拿几首歌. 思路:如果是求时常,直接用01背包即可,但设计到打印路径这里就用一个二维数组标记 ...

  2. uva 624 CD 01背包打印路径

    // 集训最终開始了.来到水题先 #include <cstdio> #include <cstring> #include <algorithm> #includ ...

  3. UVA624(01背包记录路径)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  4. 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 ...

  5. Codeforces Gym-102219 2019 ICPC Malaysia National E. Optimal Slots(01背包+输出路径)

    题意:给你一个体积为\(T\)的背包,有\(n\)个物品,每个物品的价值和体积都是是\(a_{i}\),求放哪几个物品使得总价值最大,输出它们,并且输出价值的最大值. 题解:其实就是一个01背包输出路 ...

  6. UVA 624 - CD (01背包 + 打印物品)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  7. UVA 624 (0 1背包 + 打印路径)

    #include<stdio.h> #include<string.h> #include<stdlib.h> #include<ctype.h> #i ...

  8. HDU 6083 度度熊的午饭时光(01背包+记录路径)

    http://acm.hdu.edu.cn/showproblem.php?pid=6083 题意: 思路: 01背包+路径记录. 题目有点坑,我一开始逆序枚举菜品,然后一直WA,可能这样的话路径记录 ...

  9. vijos 1071 01背包+输出路径

    描述 过年的时候,大人们最喜欢的活动,就是打牌了.xiaomengxian不会打牌,只好坐在一边看着. 这天,正当一群人打牌打得起劲的时候,突然有人喊道:“这副牌少了几张!”众人一数,果然是少了.于是 ...

随机推荐

  1. 提取linux中eth0的IP地址

    法1:cut [root@oldboy oldboy]# ifconfig eth0|grep 'inet addr'|cut -d ":" -f2|cut -d " & ...

  2. Spring的国际化(转载)

    1:在MyEclipse下面创建一个test的Web  Project,然后添加Spring相关的文件,在src根目录下创建applicationContext.xml文件. applicationC ...

  3. Haskell语言学习笔记(65)Data.HashMap

    安装 unordered-containers $ cabal install unordered-containers Installed unordered-containers-0.2.9.0 ...

  4. MongoDB 数据查询

    数据查询 基本查询 方法find():查询 db.集合名称.find({条件文档}) 方法findOne():查询,只返回第一个 db.集合名称.findOne({条件文档}) 方法pretty(): ...

  5. python中的__name__=='__main__'如何简单理解(一)

    1. 摘要: 通俗的理解_name_ == '_main_':假如你叫小明.py,在朋友眼中,你是小明(_name_ == '小明'):在你自己眼中,你是你自己(_name_ == '_main_') ...

  6. 【Java】JVM(三)、Java垃圾收集器

    一.Minor GC.Major GC 和 Full GC Minor GC:清理新生代空间,当Eden空间不能分配时候引发Minor GC Major GC:清理老年代空间 Full GC:清理Ja ...

  7. PIE结对编程

    学习进度条 点滴成就 学习时间 新编写代码行数 博客量 学到知识点 第一周 8 0 0 了解软件工程 第二周 7 0 1 了解软件工程 第三周 11 0 1 用例图 第四周 6 25 0 结对编程 第 ...

  8. Dubbo简单理解

    Dubbo 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,Dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有Dubbo这样 ...

  9. 【原创】Junit4详解二:Junit4 Runner以及test case执行顺序和源代码理解

    概要: 前一篇文章我们总体介绍了Junit4的用法以及一些简单的测试.之前我有个疑惑,Junit4怎么把一个test case跑起来的,在test case之前和之后我们能做些什么? Junit4执行 ...

  10. vs2008 FileUpload 上传控件 Gridview传多个值

    拖fileupload控件,控件后加button1 lable1 lable2,还要在与本窗体同意目录下新建img文件夹protected void Button1_Click(object send ...