做网站买虚拟服务器,yellow在线观看完整版视频,创业项目的网站,网站开发 放大图片陶陶摘苹果#xff08;升级版#xff09;
题目描述
又是一年秋季时#xff0c;陶陶家的苹果树结了 n n n 个果子。陶陶又跑去摘苹果#xff0c;这次他有一个 a a a 公分的椅子。当他手够不着时#xff0c;他会站到椅子上再试试。
这次与 NOIp2005 普及组第一题不同的…陶陶摘苹果升级版
题目描述
又是一年秋季时陶陶家的苹果树结了 n n n 个果子。陶陶又跑去摘苹果这次他有一个 a a a 公分的椅子。当他手够不着时他会站到椅子上再试试。
这次与 NOIp2005 普及组第一题不同的是陶陶之前搬凳子力气只剩下 s s s 了。当然每次摘苹果时都要用一定的力气。陶陶想知道在 s 0 s0 s0 之前最多能摘到多少个苹果。
现在已知 n n n 个苹果到达地上的高度 x i x_i xi椅子的高度 a a a陶陶手伸直的最大长度 b b b陶陶所剩的力气 s s s陶陶摘一个苹果需要的力气 y i y_i yi求陶陶最多能摘到多少个苹果。
输入格式
第 1 1 1 行两个数 苹果数 n n n力气 s s s。
第 2 2 2 行两个数 椅子的高度 a a a陶陶手伸直的最大长度 b b b。
第 3 3 3 行~第 3 n − 1 3n-1 3n−1 行每行两个数 苹果高度 x i x_i xi摘这个苹果需要的力气 y i y_i yi。
输出格式
只有一个整数表示陶陶最多能摘到的苹果数。
样例 #1
样例输入 #1
8 15
20 130
120 3
150 2
110 7
180 1
50 8
200 0
140 3
120 2样例输出 #1
4提示
对于 100 % 100\% 100% 的数据 n ≤ 5000 n\leq 5000 n≤5000, a ≤ 50 a\leq 50 a≤50, b ≤ 200 b\leq 200 b≤200, s ≤ 1000 s\leq 1000 s≤1000, x i ≤ 280 x_i\leq 280 xi≤280, y i ≤ 100 y_i\leq 100 yi≤100。 思路
将能够得着的苹果的所需体力放入多重集合中连排序都省了。
使用贪心算法挑需要体力最少的苹果摘直到体力不足为止。 AC代码
#include iostream
#include algorithm
#include set
#define AUTHOR HEX9CF
using namespace std;const int N 1e4 7;/*
n 苹果数
s 力气
a 椅子高度
b 手长
*/
int n, s, a, b;
int cnt;multisetint ms;int main()
{cnt 0;cin n s a b;while (n--){int tx, ty;cin tx ty;if (tx a b){ms.insert(ty);}}for (auto it ms.begin(); it ! ms.end(); it){int ss s - *it;if (ss 0){break;}s ss;cnt;}cout cnt endl;return 0;
}