链接:

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. Kotlin语言学习笔记(5)

    委托模式(Delegation) 类的委托 interface Base { fun print() } class BaseImpl(val x: Int) : Base { override fu ...

  2. python 学习备忘

    list列表排序 def listdir(path): #返回一个排序后的目录list files=os.listdir(path) files.sort(key=lambda x:str(x[:-4 ...

  3. ios 真机测试与发布详细流程,基于最新的开发者网站,ios7,xcode5(有截图的哦)[[[第一部分真机测试]]]

    转载于:http://blog.csdn.net/lv_ruanruan/article/details/14446597 真机测试及发布详细流程,最新版 第一次一个人搞一个项目,我们老大规定,一个周 ...

  4. springmvc框架的搭建

    1引入jar包 jar包下载地址http://maven.springframework.org/release/org/ 以下是我引入的jar包 aopalliance-1.0.jaraspectj ...

  5. DataFrame查增改删

    DataFrame查增改删 查 Read 类list/ndarray数据访问方式 dates = pd.date_range(',periods=10) dates df = pd.DataFrame ...

  6. scala 稀疏向量

    http://mocom.xmu.edu.cn/article/show/58481eb2e083c990247075a5/0/1 1. /创建一个标签为1.0(分类中可视为正样本)的稠密向量标注点 ...

  7. linux下挂载磁盘操作

      重启服务器,查看是否挂载上去了 CentOS云服务器数据盘分区和格式化 腾迅云: http://wiki.qcloud.com/wiki/CentOS%E4%BA%91%E6%9C%8D%E5%8 ...

  8. 使用生活实例理解Asp.net运行时

    学习编程语言,掌握面向对象的编程思想尤为重要,一旦理解了面向对象的这种概念,那么好些地方拿到生活中去理解,就容易的多了.书本上的枯燥干涩的语言,对于好多人来说,即难懂,更难长时间牢牢记得.但是编程语言 ...

  9. C++,坑...

    如果使用const全局变量,记得声明处的引用处都加extern. uint32_t等,t代表是typedef的,在stdint.h头文件里,C99后引入,记得先测试再用. accept函数的参数,记得 ...

  10. day10:vcp考试

    Q181. An administrator is deploying ESXi 6.x hosts using Auto Deploy and wants the image profile to ...