时隔两年我又回来了题目链接题目这是一道很简单的贪心问题看看代码### 代码#include bits/stdc.h using namespace std; const int N 5e3 10; //数据上有 struct node { int x, y; }d[N]; //结构体好排序 int cmp (node f, node g) { return f.y g.y; // 肯定是从小到大排因为优先体力值小的可以为后面继续采摘留下足够的空间 } int main () { int n, s, a, b; cin n s a b; for (int i 1; i n; i) { cin d[i].x d[i].y; } sort (d 1, d n 1, cmp); // 排序 int ans 0; // 记录采摘的数量 for (int i 1; i n; i) { if (s d[i].y) break; // 体力知道这里不够了没必要继续了 if (a b d[i].x) continue; // 高度够不到直接看下一个够不够的到 s - d[i].y; // 把两个特殊情况除去后直接减体力值因为此时满足要求 ans ; // 记录数量 } cout ans; return 0; } // 大家努力相信一定能理解如果有疑惑这里有讲解视频录制: 漠澜的快速会议日期: 2026-03-14 20:58:24录制文件讲解视频题解就到这谢谢大家的观看