二级域名网站,WordPress adsen,怎么创造游戏软件,wordpress 外贸站主题陶陶摘苹果#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。 贪心经典要素结构体排序
#includeiostream
#includealgorithm
using namespace std;
const int N 5e3 10;struct Apple { //定义结构体记录苹果的高度和体力花费int height, cost;
}apple[N];bool com(Apple aa, Apple bb) { //定义一个结构的排序方式return aa.cost bb.cost; //使其sort时按照体力花费从小到大排序
}// ! ! ! return 从小到大 return 从大到小int main() { int n; cin n; //s:体力,a:椅子高度,b:手伸长高度int s, a, b; cin s a b;//maxHeight abint res 0; //存答案for (int i 1; i n; i) {cin apple[i].height apple[i].cost;if (apple[i].cost 0 apple[i].height ab) { //由于个别苹果摘得时候甚至能够只花0体力res; //故我们判断如果高度能够到且不用花费体力 apple[i].cost 2e9; //就直接让答案增加并且使这个苹果高度无限高} //这样保证不会被重复搜到}sort(apple 1, apple n 1, com);for (int i 1; i n; i) {if (a b apple[i].height s apple[i].cost) {//只需要判断最大高度能够到就可以搬椅子不会花费额外体力res;s - apple[i].cost;}if (s 0)break; //如果体力已经没了就直接跳出}cout res;return 0;
}