【洛谷 P1478】陶陶摘苹果(升级版)题解(向量+排序+贪心算法)

编程入门 行业动态 更新时间:2024-10-12 03:21:34

【洛谷 P1478】陶陶摘苹果(升级版)题解(<a href=https://www.elefans.com/category/jswz/34/1768665.html style=向量+排序+贪心算法)"/>

【洛谷 P1478】陶陶摘苹果(升级版)题解(向量+排序+贪心算法)

陶陶摘苹果(升级版)

题目描述

又是一年秋季时,陶陶家的苹果树结了 n n n 个果子。陶陶又跑去摘苹果,这次他有一个 a a a 公分的椅子。当他手够不着时,他会站到椅子上再试试。

这次与 NOIp2005 普及组第一题不同的是:陶陶之前搬凳子,力气只剩下 s s s 了。当然,每次摘苹果时都要用一定的力气。陶陶想知道在 s < 0 s<0 s<0 之前最多能摘到多少个苹果。

现在已知 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 3+n-1 3+n−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 <vector>
#define AUTHOR "HEX9CF"
using namespace std;const int N = 1e4 + 7;/*
n 苹果数
s 力气
a 椅子高度
b 手长
*/
int n, s, a, b;
int cnt;vector<int> v;int main()
{cnt = 0;cin >> n >> s >> a >> b;while (n--){int tx, ty;cin >> tx >> ty;if (tx <= a + b){v.push_back(ty);}}sort(v.begin(), v.end());for (auto it = v.begin(); it != v.end(); it++){int ss = s - *it;if (ss < 0){break;}s = ss;cnt++;}cout << cnt << endl;return 0;
}

更多推荐

【洛谷 P1478】陶陶摘苹果(升级版)题解(向量+排序+贪心算法)

本文发布于:2023-11-15 13:53:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1600786.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:向量   题解   贪心   升级版   算法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!