【BZOJ3174】[TJOI2013]拯救小矮人(贪心,动态规划)
【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]拯救小矮人(贪心,动态规划)相关推荐
- 【bzoj3174】[Tjoi2013]拯救小矮人 贪心+dp
题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚 ...
- [TJOI2013]拯救小矮人(反悔贪心证明),「ICPC World Finals 2019」Hobson 的火车(基环树,差分)
2021-09-07 test [TJOI2013]拯救小矮人 「ICPC World Finals 2019」Hobson 的火车 [TJOI2013]拯救小矮人 luogu4823 考试题目的数据 ...
- 洛谷 P4823 [TJOI2013]拯救小矮人
题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口. 对于每一个小矮人,我们知道他从 ...
- 浅析拯救小矮人的 nlogn 算法及其证明
浅析拯救小矮人的 nlogn 算法及其证明 题型简介: 有 $ n $ 个人,第 $ i $ 个人身高 $ a_i $ 手长 $ b_i $ ,他们为了从一个高为 $ H $ 的洞中出去,决定搭人梯. ...
- 【BZOJ3174】【codevs25442075】拯救小矮人,DP+贪心
Time:2016.07.19 Author:xiaoyimi 转载注明出处谢谢 传送门1 传送门2 传送门3 思路: 比较神的DP "贪心确定DP的状态"--reflash 写了 ...
- 使用canvas实现小矮人行走案例
html代码 <canvas width="500" height="500"></canvas> <script src=&qu ...
- 项目管理小故事之小矮人的故事
小矮人的故事 在古希腊时期的塞浦路斯,曾经有一座城堡里关着一群小矮人.传说他们是因为受到了可怕咒语的诅咒,而被关到这个与世隔绝的地方.他们找不到任何人可以求助,没有粮食,没有水,七个小矮人越来越绝 望 ...
- 《讲个故事》七个小矮人 与 七层模型
某天深夜,标准委员会的工程师们的在酒吧里喝酒划拳,酒过三巡,越玩越嗨,谈到迪士尼电影的时候,他们把电影里7个小矮人的名字写在餐巾纸上,有个人开玩笑说 7 对于网络分层是个好数字.第二天上午在标准化委员 ...
- 《讲个故事》七个小矮人与OSI七层模型
某天深夜,标准委员会的工程师们的在酒吧里喝酒划拳,酒过三巡,越玩越嗨,谈到迪士尼电影的时候,他们把电影里7个小矮人的名字写在餐巾纸上,有个人开玩笑说 7 对于网络分层是个好数字.第二天上午在标准化委员 ...
- [codevs 1302] 小矮人(2002年CEOI中欧信息学奥赛)
描述 矮人们平时有走亲访友的习惯.一天,矮人国要修一条高速公路,矮人们希望他们走亲访友的时候,能够不必穿越高速公路,这样会更安全一些.现在有M个高速公路的修建方案,请你判断这M条高速功能是否能满足矮人 ...
最新文章
- 如何建立和维护自己的“人脉”
- 深入剖析防火墙策略的执行过程
- python编程入门经典 评分-《Python编程入门经典》--第二章:数值和运算符
- node.js学习笔记(21) express日志
- linux编译避免污染源码分离,如何避免linux上的系统标准C/C++库?
- 由于找不到openni2_Kinect开发教程八:OpenNI2显示深度、彩色及融合图像
- app服务器该如何配置文件,当你使用 SQL Server 2016 或更高版本应用用户配置文件时,App-V 服务器发布可能会失败...
- 为什么很多公司只给博士发安家费,却不给研究生和本科生发?
- 自定义 DameK UltraBlue 的 Command Line
- thinkphp5 数据库 链接 Connection
- linux i3 桌面,Linux 桌面平铺管理器 - i3wm
- 如何切换水经注地图下载器中的小数度和度分秒显示
- hd620显卡驱动 linux,英特尔为Windows 10 推出新显卡驱动 26.20.100.7870
- Python3 文档批量助手
- 游戏中要遵守道德规范吗?谈《荒野大镖客2》道德体验设计的意义
- 计算机专业不用学数学的有什么,大学里不用学数学的专业,不想学高数的看过来,你的专业是哪个...
- Python将url转换作为合法文件名
- 小区宽带不能上网的解决办法
- 慢慢欣赏linux x86 bootloader加载kernel的策略
- 【实战】使用Bert微调完成文本二分类
热门文章
- Linux之动态网页——搭建博客
- NYOJ--218--Dinner(含题目意思)
- leetcode331. Verify Preorder Serialization of a Binary Tree
- js学习(六)- js对象创建
- iOS 通讯录编程【总结】
- [HTML5和Flash视频播放器]Video.js 学习笔记(一 ) HLS库:videojs-contrib-hls
- Jenkins Pinned Plugins(Jenkins绑定插件)
- Azure Storage Explorer
- office word 2007快捷键大全
- php 清除浮动,清除浮动的几种方法