题目描述

一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯。即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口。对于每一个小矮人,我们知道他从脚到肩膀的高度Ai,并且他的胳膊长度为Bi。陷阱深度为H。如果我 们利用矮人1,矮人2,矮人3,。。。矮人k搭一个梯子,满足A1+A2+A3+....+Ak+Bk>=H,那么矮人k就可以离开陷阱逃跑了,一 旦一个矮人逃跑了,他就不能再搭人梯了。
我们希望尽可能多的小矮人逃跑, 问最多可以使多少个小矮人逃跑。

输入

第一行一个整数N, 表示矮人的个数,接下来N行每一行两个整数Ai和Bi,最后一行是H。(Ai,Bi,H<=10^5)

输出

一个整数表示对多可以逃跑多少小矮人

样例输入

样例1
2
20 10
5 5
30
样例2
2
20 10
5 5
35

样例输出

样例1
2
样例2
1


题解

贪心+dp

首先如果a.x+a.y<b.x+b.y(x、y分别为身高和手长),说明a的逃跑能力比b弱,应该先离开。如果不能离开,就待在下面。

然后按照这个dp即可。

f[i]表示逃出i人后人梯的最大高度。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
struct data
{int x , y;
}a[2001];
int f[2001];
bool cmp(data a , data b)
{return a.x + a.y < b.x + b.y;
}
int main()
{int n , i , j , h , ans = 0;scanf("%d" , &n);memset(f , -1 , sizeof(f));f[0] = 0;for(i = 1 ; i <= n ; i ++ )scanf("%d%d" , &a[i].x , &a[i].y) , f[0] += a[i].x;scanf("%d" , &h);sort(a + 1 , a + n + 1 , cmp);for(i = 1 ; i <= n ; i ++ ){for(j = ans ; j >= 0 ; j -- )if(f[j] + a[i].y >= h)f[j + 1] = max(f[j + 1] , f[j] - a[i].x);if(f[ans + 1] >= 0)ans ++ ;}printf("%d\n" , ans);return 0;
}

转载于:https://www.cnblogs.com/GXZlegend/p/6401325.html

【bzoj3174】[Tjoi2013]拯救小矮人 贪心+dp相关推荐

  1. [TJOI2013]拯救小矮人(反悔贪心证明),「ICPC World Finals 2019」Hobson 的火车(基环树,差分)

    2021-09-07 test [TJOI2013]拯救小矮人 「ICPC World Finals 2019」Hobson 的火车 [TJOI2013]拯救小矮人 luogu4823 考试题目的数据 ...

  2. 洛谷 P4823 [TJOI2013]拯救小矮人

    题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口. 对于每一个小矮人,我们知道他从 ...

  3. 【BZOJ3174】【codevs25442075】拯救小矮人,DP+贪心

    Time:2016.07.19 Author:xiaoyimi 转载注明出处谢谢 传送门1 传送门2 传送门3 思路: 比较神的DP "贪心确定DP的状态"--reflash 写了 ...

  4. 浅析拯救小矮人的 nlogn 算法及其证明

    浅析拯救小矮人的 nlogn 算法及其证明 题型简介: 有 $ n $ 个人,第 $ i $ 个人身高 $ a_i $ 手长 $ b_i $ ,他们为了从一个高为 $ H $ 的洞中出去,决定搭人梯. ...

  5. 使用canvas实现小矮人行走案例

    html代码 <canvas width="500" height="500"></canvas> <script src=&qu ...

  6. 项目管理小故事之小矮人的故事

    小矮人的故事 在古希腊时期的塞浦路斯,曾经有一座城堡里关着一群小矮人.传说他们是因为受到了可怕咒语的诅咒,而被关到这个与世隔绝的地方.他们找不到任何人可以求助,没有粮食,没有水,七个小矮人越来越绝 望 ...

  7. 《讲个故事》七个小矮人 与 七层模型

    某天深夜,标准委员会的工程师们的在酒吧里喝酒划拳,酒过三巡,越玩越嗨,谈到迪士尼电影的时候,他们把电影里7个小矮人的名字写在餐巾纸上,有个人开玩笑说 7 对于网络分层是个好数字.第二天上午在标准化委员 ...

  8. 《讲个故事》七个小矮人与OSI七层模型

    某天深夜,标准委员会的工程师们的在酒吧里喝酒划拳,酒过三巡,越玩越嗨,谈到迪士尼电影的时候,他们把电影里7个小矮人的名字写在餐巾纸上,有个人开玩笑说 7 对于网络分层是个好数字.第二天上午在标准化委员 ...

  9. [codevs 1302] 小矮人(2002年CEOI中欧信息学奥赛)

    描述 矮人们平时有走亲访友的习惯.一天,矮人国要修一条高速公路,矮人们希望他们走亲访友的时候,能够不必穿越高速公路,这样会更安全一些.现在有M个高速公路的修建方案,请你判断这M条高速功能是否能满足矮人 ...

最新文章

  1. Python3.5模块‘OS’‘sys’
  2. Python读写json文件中文编码问题
  3. 机器学习技法-随机森林(Random Forest)
  4. Linq 多表连接查询join
  5. mysql5.7 only_full_group_by_Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法
  6. 看到这块Google的“墓地”,心中作何感想?| 今日最佳
  7. 限流算法(漏桶算法、令牌桶算法)对比
  8. 链接聚合是将一组物理接口_如何增加带宽,提升网络可靠性?
  9. 算法分析与设计 —— 贪心算法「活动安排」「背包问题」「哈夫曼编码」
  10. redis学习笔记之虚拟内存
  11. 【2021团体程序设计天梯赛】L1部分(PTA,L1-073到L1-080)题解代码
  12. 中科院合肥物质科学研究院葛运建团队: 智能机器人带来更美好生
  13. 知识蒸馏方法的演进历史综述
  14. 【解决】Linux使用vim出现E325:ATTENTION错误
  15. win10电脑360调用不到JAVA,win7/win10系统360浏览器打不开原因及解决方法
  16. php大文件去重,详细解说PHP多个进程配合redis的有序集合实现大文件去重
  17. pulseaudio-点点滴滴
  18. Instrument初识
  19. html object flash,HTML Flash Object属性(摘)
  20. Vue的生命周期钩子函数之activated

热门文章

  1. Linux入门之VIM快捷使用
  2. CACTI 仙人掌监控平台
  3. 图形图像处理,CAD控件Simulation and Verification提供模拟机器的工具运转机床和车床材料的搬运控件...
  4. 2007年网络防病毒评测_序
  5. [翻译]用表单字段加亮的方式为用户提供友好的界面
  6. Ansi,UTF8,Unicode编码
  7. 串口循环缓存区 简单 免初始化 不用堆、指针、分段memcpy
  8. [Python] L1-003. 个位数统计-PAT团体程序设计天梯赛GPLT
  9. python cv.rectangle_Python OpenCV cv2.rectangle()用法及代码示例
  10. james邮件服务器的用户信息添加