链接:

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. Haskell语言学习笔记(25)MonadState, State, StateT

    MonadState 类型类 class Monad m => MonadState s m | m -> s where get :: m s get = state (\s -> ...

  2. SMO算法(转)

    作者:[已重置]链接:https://www.zhihu.com/question/40546280/answer/88539689来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  3. rook 记录

    更改rook 集群的配置 https://github.com/rook/rook/blob/master/design/cluster-update.md rook集群升级流程 https://ro ...

  4. node.js实时编译,不需要重启

    npm -g install supervisor 全局安装这个,然后编译依一次文件就可以了,之后修改这个文件不用编译也可以了

  5. Web开发: servlet的session为null?

    servlet的session(会话)显示为null,一般是web.xml中配置不对或者在浏览器输入的url不正确造成的. web.xml配置如下: <servlet> <servl ...

  6. hdoj1257(DP-LIS/贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257 方法1--贪心: 定义一个数组f[30005],由于题目没给数据量大小,故为了保险,开到最大(高 ...

  7. Mysql优化性能优化21条

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  8. php Pthread 多线程 (二) Worker和Threaded

    <?php //Worker是具有持久化上下文(执行环境)的线程对象 //Worker对象start()后,会执行run()方法,run()方法执行完毕,线程也不会消亡 class MySqlW ...

  9. mysql5.5以上开启慢查询

    在my.ini配置文件中添加: [mysqld] #开启慢查询 slow_query_log = on #慢查询时间 long_query_time = 0.5 #记录没有使用索引的查询 log_qu ...

  10. macos安装postman

    安装命令 brew cask install postman brew 是从下载源码解压然后./configure && make install,同时会包含相关依存库.并自动配置 好 ...