bzoj3174【TJOI2013】解救小矮人
3174: [Tjoi2013]解救小矮人
Time Limit: 1 Sec Memory Limit: 128 MB id=3174" style="color:blue; text-decoration:none">Discuss
Submit: 573 Solved: 293
[Submit][Status][
Description
一群小矮人掉进了一个非常深的陷阱里,因为太矮爬不上来,于是他们决定搭一个人梯。即:一个小矮人站在还有一小矮人的 肩膀上。知道最顶端的小矮人伸直胳膊能够碰到陷阱口。
对于每个小矮人,我们知道他从脚到肩膀的高度Ai,而且他的胳膊长度为Bi。陷阱深度为H。假设我 们利用矮人1,矮人2。矮人3,。。
。矮人k搭一个梯子,满足A1+A2+A3+....+Ak+Bk>=H,那么矮人k就能够离开陷阱逃跑了,一
旦一个矮人逃跑了,他就不能再搭人梯了。
我们希望尽可能多的小矮人逃跑, 问最多能够使多少个小矮人逃跑。
Input
Output
Sample Input
2
20 10
5 5
30
例子2
2
20 10
5 5
35
Sample Output
2
例子2
1
HINT
数据范围
30%的数据 N<=200
100%的数据 N<=2000
贪心+DP
感性地理解一下。a[i]+b[i]较大的小矮人逃跑的能力更强。所以我们要先让a[i]+b[i]小的人尽可能先逃跑。
于是能够想到按a[i]+b[i]从小到大排序,然后贪心计算。但这个贪心显然是有问题的。所以我们考虑用DP解决贪心的不足。
贪心的不足之处在于当前的小矮人的a[i]还会对后面的小矮人产生影响。所以我们能够令f[i]表示逃跑了i个小矮人剩余a[i]和的最大值。
在更新f数组的同一时候也就计算出了答案。
注意:f数组要逆向更新。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#define F(i,j,n) for(int i=j;i<=n;i++)
#define D(i,j,n) for(int i=j;i>=n;i--)
#define ll long long
#define maxn 2005
using namespace std;
int n,h,ans,f[maxn];
struct data{int x,y;}a[maxn];
inline int read()
{
int x=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
inline bool cmp(data a,data b)
{
return a.x+a.y<b.x+b.y;
}
int main()
{
n=read();
memset(f,-1,sizeof(f));
f[0]=0;
F(i,1,n) a[i].x=read(),a[i].y=read(),f[0]+=a[i].x;
h=read();
sort(a+1,a+n+1,cmp);
F(i,1,n)
{
D(j,ans,0) 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;
}
bzoj3174【TJOI2013】解救小矮人的更多相关文章
- BZOJ3174 Tjoi2013 拯救小矮人(贪心+DP)
传送门 Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个 ...
- bzoj3174 [Tjoi2013]拯救小矮人
Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人, ...
- BZOJ3174:[TJOI2013]拯救小矮人(DP)
Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人, ...
- BZOJ3174. [TJOI2013]拯救小矮人(dp)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3174 题解 其实此题并不需要那么多YY的部分. 我们考虑若干个小矮人逃出的顺序.若跳出的 ...
- BZOJ3174 TJOI2013 拯救小矮人 贪心、DP
传送门 原问题等价于:先给\(n\)个人排好顺序.叠在一起,然后从顶往底能走即走,问最多能走多少人 注意到一个问题:如果存在两个人\(i,j\)满足\(a_i + b_i < a_j + b_j ...
- bzoj千题计划208:bzoj3174: [Tjoi2013]拯救小矮人
http://www.lydsy.com/JudgeOnline/problem.php?id=3174 按a+b从小到大排序,a+b小的在上面,先考虑让它逃出去 正确性不会证 感性理解一下,最后一个 ...
- 【BZOJ3174】[TJOI2013]拯救小矮人(贪心,动态规划)
[BZOJ3174][TJOI2013]拯救小矮人(贪心,动态规划) 题面 BZOJ 洛谷 题解 我们定义一个小矮人的\(A_i+B_i\)为它的逃跑能力. 我们发现,如果有两个小矮人\(x,y\), ...
- 【BZOJ-3174】拯救小矮人 贪心 + DP
3174: [Tjoi2013]拯救小矮人 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 686 Solved: 357[Submit][Status ...
- BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP
BZOJ_3174_[Tjoi2013]拯救小矮人_贪心+DP Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀 ...
随机推荐
- Python的程序结构[5] -> 模块/Module[0] -> 内建模块 builtins
builtins 内建模块 / builtins Module 在Python的模块中,有一种特殊模块,无需导入便可以使用,其中包含了许多内建函数与类. builtins 模块内容 / builtin ...
- (转)Limboy:自学 iOS 开发的一些经验
不知不觉作为 iOS 开发也有两年多的时间了,记得当初看到 OC 的语法时,愣是被吓了回去,隔了好久才重新耐下心去啃一啃.啃了一阵,觉得大概有了点概念,看到 Cocoa 那么多的 Class,又懵了, ...
- [CP1804]组合数问题2
题目大意: 给定两个数$n(n\le10^6)$和$k(k\le10^5)$,找到$k$个不同的满足$0\le b\le a\le n$的组合数$\binom a b$,求这$k$个组合数的最大值. ...
- SQL Reverse函数
原文:SQL Reverse函数 Sql sever里面有个自带的reverse函数,这个函数的主要功能是把一个字符产反转.比如对于: select REVERSE('hello,world') 将得 ...
- WCF 与其它技术的比较
以下特性WCF都支持 特性 Web Service .Net Remoting Enterprise Services WSE(WS Enhancements) MSMQ 具有互操作性的Web服务 支 ...
- 查看Linux服务器CPU使用率、内存使用率、磁盘空间占用率、负载情况
[root@server script]# vi monitor.py #!/usr/bin/env python # -*- coding:utf-8 -*- #Author: nulige imp ...
- 损失函数(loss function)
通常而言,损失函数由损失项(loss term)和正则项(regularization term)组成.发现一份不错的介绍资料: http://www.ics.uci.edu/~dramanan/te ...
- spring aop expression支持多个表达式配置
<!-- 配置那些类的方法进行事务管理 --> <aop:config> <aop:pointcut id="allServiceMethod" ex ...
- http://blog.csdn.net/i_bruce/article/details/39555417
http://blog.csdn.net/i_bruce/article/details/39555417
- iptables 使用场景
25 Most Frequently Used Linux IPTables Rules Examples by RAMESH NATARAJAN on JUNE 14, 2011 At a firs ...