【BZOJ3174】[TJOI2013]拯救小矮人(贪心,动态规划)

题面

BZOJ
洛谷

题解

我们定义一个小矮人的\(A_i+B_i\)为它的逃跑能力。
我们发现,如果有两个小矮人\(x,y\),逃跑能力\(x<y\),并且在当前方案中最终\(x\)和\(y\)都跑出去了,那么显然让\(x\)先跑出去不会更差。
那么把所有人按照逃跑能力排序,这样子我们只需要从前往后选择若干人让他们顺次逃跑就好了。
设\(f[i][j]\)表示当前考虑到了前\(i\)个人,一共跑出去了\(j\)个人之后剩下的人梯的最大高度,转移的时候枚举一下每个人是否跑出去就好了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define MAX 2020
inline int read()
{int x=0;bool t=false;char ch=getchar();while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();if(ch=='-')t=true,ch=getchar();while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();return t?-x:x;
}
int n,H;
struct Node{int a,b;}p[MAX];
bool operator<(Node a,Node b){return a.a+a.b<b.a+b.b;}
int f[MAX][MAX],s[MAX];
int main()
{n=read();for(int i=1;i<=n;++i)p[i].a=read(),p[i].b=read();H=read();sort(&p[1],&p[n+1]);for(int i=n;i;--i)s[i]=s[i+1]+p[i].a;memset(f,-63,sizeof(f));f[0][0]=0;for(int i=1;i<=n;++i)for(int j=0;j<i;++j){f[i][j]=max(f[i][j],f[i-1][j]+p[i].a);if(f[i-1][j]+s[i+1]+p[i].a+p[i].b>=H)f[i][j+1]=max(f[i][j+1],f[i-1][j]);}for(int i=n;~i;--i)if(f[n][i]>=0){printf("%d\n",i);break;}return 0;
}

转载于:https://www.cnblogs.com/cjyyb/p/10571815.html

【BZOJ3174】[TJOI2013]拯救小矮人(贪心,动态规划)相关推荐

  1. 【bzoj3174】[Tjoi2013]拯救小矮人 贪心+dp

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 如何建立和维护自己的“人脉”
  2. 深入剖析防火墙策略的执行过程
  3. python编程入门经典 评分-《Python编程入门经典》--第二章:数值和运算符
  4. node.js学习笔记(21) express日志
  5. linux编译避免污染源码分离,如何避免linux上的系统标准C/C++库?
  6. 由于找不到openni2_Kinect开发教程八:OpenNI2显示深度、彩色及融合图像
  7. app服务器该如何配置文件,当你使用 SQL Server 2016 或更高版本应用用户配置文件时,App-V 服务器发布可能会失败...
  8. 为什么很多公司只给博士发安家费,却不给研究生和本科生发?
  9. 自定义 DameK UltraBlue 的 Command Line
  10. thinkphp5 数据库 链接 Connection
  11. linux i3 桌面,Linux 桌面平铺管理器 - i3wm
  12. 如何切换水经注地图下载器中的小数度和度分秒显示
  13. hd620显卡驱动 linux,英特尔为Windows 10 推出新显卡驱动 26.20.100.7870
  14. Python3 文档批量助手
  15. 游戏中要遵守道德规范吗?谈《荒野大镖客2》道德体验设计的意义
  16. 计算机专业不用学数学的有什么,大学里不用学数学的专业,不想学高数的看过来,你的专业是哪个...
  17. Python将url转换作为合法文件名
  18. 小区宽带不能上网的解决办法
  19. 慢慢欣赏linux x86 bootloader加载kernel的策略
  20. 【实战】使用Bert微调完成文本二分类

热门文章

  1. Linux之动态网页——搭建博客
  2. NYOJ--218--Dinner(含题目意思)
  3. leetcode331. Verify Preorder Serialization of a Binary Tree
  4. js学习(六)- js对象创建
  5. iOS 通讯录编程【总结】
  6. [HTML5和Flash视频播放器]Video.js 学习笔记(一 ) HLS库:videojs-contrib-hls
  7. Jenkins Pinned Plugins(Jenkins绑定插件)
  8. Azure Storage Explorer
  9. office word 2007快捷键大全
  10. php 清除浮动,清除浮动的几种方法