[背包DP]Space Elevator 太空电梯
[背包DP]Space Elevator 太空电梯
- 题面
- 题目描述
- 输入
- 输出
- 样例
- 解析
- 代码
题面
题目描述
奶牛们要去太空了!它们打算用方块建造一座太空电梯。现在它们有 NN 种方块,第 ii 种方块有一个特定的高度 h i h_i hi,一定的数量 c i c_i ci 。为了防止宇宙射线的破坏方块,第 i i i 种方块的任何部分不能超过高度 a i a_i ai 。
请用这些方块堆出最高的太空电梯。
输入
第一行,一个整数 N N N;
第二行到 N + 1 N+1 N+1 行,第 i + 1 i+1 i+1行三个整数 h i , a i , c i h_i,a_i,c_i hi,ai,ci,数字之间用空格分隔。
输出
共一行,一个整数,为太空电梯的高度。
样例
样例输入
3
7 40 3
5 23 8
2 52 6
样例输出
48
提示
对于 100 % 100\% 100% 的数据: 1 ≤ K ≤ 400 1\le K\le 400 1≤K≤400, 1 ≤ h i ≤ 100 1\le h_i \le 100 1≤hi≤100, 1 ≤ c i ≤ 10 1\le c_i\le 10 1≤ci≤10, 1 ≤ a i ≤ 4 × 1 0 4 1\le a_i\le 4\times10^4 1≤ai≤4×104
解析
易得:
F i = { 1 ( i = 0 ) max j = 1 N F i − h j ( i ≠ 0 ) F_i=\left\{ \begin{aligned} &1&(i=0) \\ &\max_{j=1}^{N}{F_{i-h_j}}&(i\not=0)\\ \end{aligned} \right. Fi=⎩⎨⎧1j=1maxNFi−hj(i=0)(i=0)
但是很容易发现是错的
因为我们并没有考虑 c i c_i ci
但是考虑后仍是错的,例如下面:
2
1 51 1
50 50 1
我们会将第一块放入,但显然先放第2块跟优
所以先排序:
struct Box{int h,a,c;}box[439];
bool cmp(Box x,Box y){return (x.a==y.a)?x.h>y.h:x.a<y.a;}
代码
#include<bits/stdc++.h>
using namespace std;
int N,ans;
struct Box{int h,c,a;}box[439];
bool cmp(Box x,Box y){return (x.a==y.a)?x.h>y.h:x.a<y.a;}
int f[439][40039];
int main(){scanf("%d",&N);for(int i=1;i<=N;i++){scanf("%d%d%d",&box[i].h,&box[i].a,&box[i].c);}sort(box+1,box+1+N,cmp);f[0][0]=1;for(int i=1;i<=N;i++){for(int j=0;j<=box[i].a;j++){for(int k=0;k<=box[i].c;k++){if(f[i-1][j]&&j+k*box[i].h<=box[i].a){f[i][j+k*box[i].h]=1;ans=max(ans,j+k*box[i].h);}}}}printf("%d",ans);
}
[背包DP]Space Elevator 太空电梯相关推荐
- P6771 [USACO05MAR]Space Elevator 太空电梯-贪心与DP
题目链接[USACO05MAR]Space Elevator 太空电梯 - 洛谷 题目描述 奶牛们要去太空了!它们打算用方块建造一座太空电梯.现在它们有 NN 种方块,第 ii 种方块有一个特定的高度 ...
- P6771 [USACO05MAR]Space Elevator 太空电梯 题解
[USACO05MAR]Space Elevator 太空电梯 description: 奶牛们要去太空了!它们打算用方块建造一座太空电梯.现在它们有 种方块,第 种方块有一个特定的高度 ,一定的数量 ...
- Java解洛谷P6771 [USACO05MAR]Space Elevator 太空电梯,包含完整的多重背包状态转移方程,大量注释,通俗易懂
01.题目及链接 题目链接:https://www.luogu.com.cn/problem/P6771 02.多重背包状态转移方程说明 了解多重背包 有 N 种物品和一个容量是 V 的背包,每种物品 ...
- 【洛谷】P6771 Space Elevator 太空电梯***(多重背包)
穿越隧道 没有理清所限制的高度之间的关系. 需要反复理解. #include <bits/stdc++.h> using namespace std; const int N = 1e3 ...
- 洛谷P6771 [USACO05MAR]Space Elevator 太空电梯
题目描述 奶牛们要去太空了!它们打算用方块建造一座太空电梯.现在它们有 N种方块,第 i种方块有一个特定的高度 h[i],一定的数量 c[i].为了防止宇宙射线破坏方块,第 i种方块的任何部分不能 ...
- Space Elevator 太空电梯(洛谷)
题目描述 奶牛们要去太空了!它们打算用方块建造一座太空电梯. 现在它们有 N 种方块,第 i 种方块有一个特定的高度 hi,一定的数量 ci . 为了防止宇宙射线的破坏方块,第 i 种方块的任何部分不 ...
- 洛谷P6771 Space Elevator 太空电梯
题目描述 奶牛们要去太空了!它们打算用方块建造一座太空电梯.现在它们有 NN 种方块,第 ii 种方块有一个特定的高度 h_ihi,一定的数量 c_ici.为了防止宇宙射线的破坏方块,第 ii 种 ...
- BZOJ1739: [Usaco2005 mar]Space Elevator 太空电梯
n<=400个东西,每个东西有高度<=100,这种东西在堆放过程中不得超过的最大高度<=40000,以及每个东西的个数<=10,求最高能堆多高. 算了下背包复杂度不太对然后开了 ...
- 【POJ - 2392】Space Elevator (dp,优秀的背包问题)
题干: The cows are going to space! They plan to achieve orbit by building a sort of space elevator: a ...
最新文章
- Exchange与ADFS单点登录 PART 2:部署和配置ADFS
- Linux内核源代码分析-第三章 内核体系结构概述-1
- IIS6.0支持PHP设置
- git 添加用户名和邮箱_设置 Git 账户及邮箱
- s11.9 sar:收集系统信息
- 【数据结构与算法】中缀表达式 - 后缀表达式 - 求值
- 好用的平板电脑_支架里的变形金刚让手机、电脑、平板更好用!6种角度,1秒切换...
- UI标签库专题七:JEECG智能开发平台 ComboBox (下拉选择框)
- 交叉编译和使用HTOP
- android控件触摸事件传递,Android事件传递处理
- (转)李嘉诚:成功源于花90%时间考虑失败
- 管家婆显示服务器没有加密狗,管家婆软件阿拉丁狗找不到加密狗
- 群晖修改ipv6dns服务器,hiboy大佬的padavan开启IPv6,并使用IPv6登录黑群晖的方法
- word转pdf转换器免费版是一款专业将word文档转换成pdf文件的软件,完美支持在线word转换成pdf,可将office word文档doc、docx、wps格式转换成PDF格式。word转pd
- 【Android 安装包优化】Android 中使用 SVG 图片 ( 批量转换 SVG 格式图片为 Vector Asset 矢量图资源 )
- openCV 简单实现身高测量(二)
- gopher攻击mysql_从一道CTF题目看Gopher攻击MySql
- (77)--用框架爬取博客园信息并保存到数据库
- mac系统连接服务器教程视频教程,mac os教程视频
- 全球及中国面膜行业消费格局与十四五趋势分析报告2022年