当前位置: 首页 > news >正文

P1478 陶陶摘苹果(升级版)题解

#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; }
http://www.jsqmd.com/news/131075/

相关文章:

  • 技术演进中的开发沉思-269 Ajax:拖放功能
  • CSS 定位
  • 12月24日
  • 金银狂飙齐创历史新高!2026年上涨已成定局?
  • live555移植到交叉编译并实现一个rtspserver。
  • 电流源偏置电路仿真分析:模拟电子技术基础项目实例
  • 主题定制皮肤功能:打造品牌专属AI界面
  • 按需购买Token服务:降低企业AI使用门槛
  • 支持多语言文档处理:国际化企业的理想选择
  • DeepSeek-Coder vs Copilot:嵌入式开发场景适配性对比实战
  • 低延迟要求场景优化:缓存机制与预加载策略
  • anything-llm插件生态展望:未来可能的扩展方向
  • 提高工业通信协议栈稳定性:ARM Compiler 5.06优化策略
  • 操作指南:Intel平台启用USB 3.2高速模式
  • ARM64在公有云中的应用:核心要点解析
  • 量化技术应用:INT4/INT8对anything-llm的影响
  • SAP MM 实施项目中未清采购订单的迁移策略
  • Altium Designer生成Gerber用于工厂生产的细节解析
  • 如何评估anything-llm的知识库回答准确性?
  • 企业微信/钉钉集成设想:anything-llm打通办公生态
  • Vitis中OpenCL加速内核开发完整示例
  • wl_arm在过程控制中的典型架构:图解说明
  • 场效应管放大电路分析:模拟电子技术基础完整示例
  • 引用溯源功能:每个答案都能追溯原始文档
  • 工业以太网节点中ISR响应时间优化方案
  • Zynq SoC中OpenAMP资源分配深度解析
  • 企业级部署架构设计:高可用下的anything-llm集群方案
  • aarch64 KVM/ARM模块源码级深度剖析
  • Docker核心功能详解:从资源管控到镜像构建
  • 高校图书馆智能化升级:学生自助查询论文系统