大意:有K种block去建塔,每种每个都有一个高度H,用了当前的block塔的高度不能超出a,和每种的数量。求塔最高能建多高。

分析:这题就是一个多重背包,但有一点变动,必须先以a从小到大排序,因为如果先用了充许塔最高的block,而那种block的h很小,个数很少,更新自然就小,那么接下来小的就充许塔高越建越小,这样就不是我们所求的塔高了。如果先用a小的类形,就有变动更大的余地。

题目大意:给你n种木块,然后让你输出最高可以组成的高度。

限制条件是:每种木块的个数,与木块的在高度h以上就不可以再出现了。

解题思路:根据每种木块可以到达的高度sort一遍然后就是多重背包,找到满足条件的最大的高度。

注意可以到达的最大的高度不会超过sort之后木块可以到达的上限,f[n-1].lim,因为在往上,是不能再搭木块的啊,所以就把这个高度当作,dp的上限

#include <algorithm>
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <iomanip>
#include <stdio.h>
#include <string>
const int maxn = 500100;
using namespace std;int dp[maxn];
struct node
{int h, num, lim;/*bool operator <(const node a)const{return lim<a.lim;}*/
} f[maxn];
int cmp(node a, node b)
{return a.lim < b.lim;
}
int main()
{int n;cin >>n;for(int i = 0; i < n; i++)cin >>f[i].h>>f[i].lim>>f[i].num;sort(f , f+n, cmp);memset(dp , 0 , sizeof(dp));dp[0] = 1;for(int i = 0; i < n; i++)for(int j = f[n-1].lim; j >= 0; j--){if(!dp[j])continue;for(int k = 1; k <= f[i].num; k++){if(j+k*f[i].h <= f[i].lim){if(!dp[j+k*f[i].h])dp[j+k*f[i].h] = 1;elsebreak;}elsebreak;}}int i;for(i = f[n-1].lim; i >= 0; i--)if(dp[i])break;cout<<i<<endl;return 0;
}

poj 2392 dp 不是很懂哎!!!Space Elevator相关推荐

  1. 【POJ - 2392】Space Elevator (dp,优秀的背包问题)

    题干: The cows are going to space! They plan to achieve orbit by building a sort of space elevator: a ...

  2. PAT甲级1067 Sort with Swap(0, i):[C++题解]此题不是很懂!!

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:y总从图论的角度来讲解的这道题,听得不是很懂. 此题不是很懂,暂留以后探讨.存在鸽的可能. ac代码 #include<bits ...

  3. 史蒂夫·乔布斯很懂团队建设

     史蒂夫·乔布斯很懂团队建设  我偶然读到了由Rama Dev Jager 和 Rafael Ortiz 在1998年写的<In the Company of Giants>这本书里的 ...

  4. AI 开发者的痛,华为云很懂

    AI从前两年的概念泛起,如今正逐渐走向落地应用阶段,然而,从厂商和用户的普遍反馈来看,人工智能的落地应用似乎并没有大众想象中的顺利,开始有越来越多诸如场景碎片化.应用成本高.实验室场景到实际应用场景效 ...

  5. polyrate使用方法_如何装作很懂半导体晶圆制造?

    原标题:如何装作很懂半导体晶圆制造? 何谓蚀刻(Etch)? 答:将形成在晶圆表面上的薄膜全部,或特定处所去除至必要厚度的制程. 蚀刻种类? 答:1.干蚀刻 2.湿蚀刻. 蚀刻对象依薄膜种类可分为? ...

  6. 我以为我很懂Promise,直到我开始实现Promise/A+规范

    我一度以为自己很懂Promise,直到前段时间尝试去实现Promise/A+规范时,才发现自己对Promise的理解还过于浅薄.在我按照Promise/A+规范去写具体代码实现的过程中,我经历了从&q ...

  7. POJ 2392 Space Elevator(多重背包变形)

    Q: 额外添加了最大高度限制, 需要根据 alt 对数据进行预处理么? A: 是的, 需要根据 alt 对数组排序 Description The cows are going to space! T ...

  8. [背包DP]Space Elevator 太空电梯

    [背包DP]Space Elevator 太空电梯 题面 题目描述 输入 输出 样例 解析 代码 题面 题目描述 奶牛们要去太空了!它们打算用方块建造一座太空电梯.现在它们有 NN 种方块,第 ii ...

  9. P6771 [USACO05MAR]Space Elevator 太空电梯-贪心与DP

    题目链接[USACO05MAR]Space Elevator 太空电梯 - 洛谷 题目描述 奶牛们要去太空了!它们打算用方块建造一座太空电梯.现在它们有 NN 种方块,第 ii 种方块有一个特定的高度 ...

最新文章

  1. JavaScript Document
  2. 单位银行结算账户如何变更
  3. Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known host
  4. 调用支付jsapl缺少参数:totalfee openid无法取得_微信支付的架构到底有多牛?
  5. app后端设计(php)
  6. 【渝粤题库】陕西师范大学100071教育学作业(高起本)
  7. linux 我的世界 跨平台联机,我的世界跨平台联机 PC、手机等平台数据互通
  8. vss团队开发工具使用(个人学习心得)
  9. shell中参数及带色彩打印
  10. security工作笔记007---spring security自定义AuthenticationProvider,验证规则
  11. python接口测试_测试大牛都会的接口测试+Python测开+Linux技能+Git命令合集!
  12. container of()函数简介
  13. css3学习笔记之背景
  14. 一个简短的指南的iOS越狱及原因
  15. python发邮件smtplib+mail
  16. csm和uefi_UEFI和Legacy的区别是什么,请尽量从原理上说明?
  17. Java SE 007 循环控制语句
  18. 基于GNU Radio和HackRF/LimeSDR的802.11收发机
  19. Android 文件存储-图片存储
  20. 为何恢复出来的MP4视频文件打不开

热门文章

  1. 在64位Windows7上安装64位Oracle11g
  2. HDU ACM 4031 Attack (树状数组--单点查询+区间更新)
  3. 论初次修改 Android framework 代码
  4. S3C6410的IROM启动模式
  5. smartform四联纸跳页问题
  6. 【.NetCore学习】ASP.NET Core EF Core2.0 DB First现有数据库自动生成实体Context
  7. 11.cadence.通孔类封装创建[原创]
  8. 2014 年第六届全国大学生数学竞赛预赛数学类最后一题参考解答
  9. Kafka JAVA客户端代码示例--高级应用
  10. CAS增加免登陆(Remember Me)功能