#include<iostream> #include<vector> #include<algorithm> // 定义结构体xy,表示苹果的属性 // x: 苹果的高度 // y: 摘取苹果需要的力量/花费 struct xy { int x, y; }; // 比较函数,用于排序 // 按照苹果的花费y从小到大排序 // 这样排序后,花费小的苹果会排在前面 int cmpxy(const xy &a, const xy &b) { return a.y < b.y; } using namespace std; int main() { // 输入数据 int n, s, a, b; // n:苹果总数, s:拥有的总力量, a:身高, b:凳子高度 cin >> n >> s >> a >> b; // 计算能够到的最大高度:身高 + 凳子高度 a += b; // 创建向量v,用于存储能够到的苹果 vector<xy> v; // 输入所有苹果的信息,并筛选能够到的苹果 for(int i = 0; i < n; i++) { xy p; // 临时变量存储一个苹果的信息 cin >> p.x >> p.y; // 输入苹果的高度和花费 // 如果苹果的高度不超过能够到的最大高度,则将其加入向量v if (p.x <= a) { v.push_back(p); } } // 对能够到的苹果按照花费从小到大排序(贪心策略) // 这样我们可以优先摘取花费小的苹果,从而摘到更多的苹果 sort(v.begin(), v.end(), cmpxy); int sum = 0; // 记录摘到的苹果数量 // 遍历排序后的苹果向量 for (int x = 0; x < v.size(); x++) { // 如果当前苹果的花费不超过剩余的力量 if (v[x].y <= s) { s -= v[x].y; // 花费力量摘取这个苹果 sum++; // 摘到的苹果数量加1 } // 注意:这里没有break,因为即使当前苹果无法摘取,后续可能有更便宜的苹果 // 但由于我们已经排序了,所以实际上后续苹果的花费不会更小 // 不过题目保证力量s非负,且输入合理,所以这里逻辑正确 } // 输出最多能摘到的苹果数量 cout << sum << endl; return 0; }P1478 陶陶摘苹果(升级版)题解
张小明
前端开发工程师
GUI_Syre报错问题解决
GUI_Syre报错问题解决 问题描述 在MATLAB控制台运行GUI_Syre.mlapp会弹出以下信息: 错误使用 datetime (第 261 行) 无法识别 21-Nov-2024 的日期/时间格式。您可以使用 InputFormat 参数指定格式。如果日期/时间文本包含的日 期、月份或时区名称所采用的语言不同于 zh_CN 区域…
提高工业通信协议栈稳定性:ARM Compiler 5.06优化策略
工业通信协议栈为何总“抽风”?用好 ARM Compiler 5.06,让系统稳如磐石在一间自动化车间里,PLC正在通过Modbus RTU与十几台传感器通信。一切看似正常,可每隔几小时就会突然丢一帧数据——上位机报警、产线暂停、工程师连夜排查………
支持多语言文档处理:国际化企业的理想选择
支持多语言文档处理:国际化企业的理想选择 在一家跨国企业的日常运营中,法务团队需要频繁查阅分布在不同国家的合同模板,市场部门要快速理解海外分支机构提交的本地化报告,而高管会议则要求实时整合来自中文、英文、日文等多种语言…
Zynq SoC中OpenAMP资源分配深度解析
Zynq SoC中OpenAMP资源分配实战全解:从原理到调通的每一步你有没有遇到过这样的场景?在Zynq开发板上跑Linux 裸机双系统,想让两个核“说上话”,结果共享内存总出错、IPI中断收不到、RPMsg通道建不起来……最后只能靠打印一堆prin…
继电器模块电路图驱动原理图解说明
一文吃透继电器驱动电路:从原理到实战,看懂每个元件的作用 在嵌入式系统和工业控制领域, “用单片机控制大功率电器” 是一个再常见不过的需求。比如你写好了智能家居程序,想让STM32或ESP32控制家里的电灯、空调甚至水泵——这些…
三极管开关电路解析:开关损耗降低的完整示例
三极管开关电路实战指南:如何把“老古董”用出高效率在嵌入式系统和功率控制的世界里,MOSFET 被吹得神乎其神——速度快、驱动省力、导通电阻小。但如果你拆开一台空调遥控器、一个LED调光模块,甚至某些工业继电器板卡,十有八九会…