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

GESP认证C++编程真题解析 | B4452 [GESP202512 四级] 优先购买

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:[B4452 GESP202512 四级] 优先购买 - 洛谷

【题目描述】

小 A 有M MM元预算。商店有N NN个商品,每个商品有商品名S SS、价格P PP和优先级V VV三种属性,其中V VV为正整数,且V VV越小代表商品的优先级越高。

小 A 的购物策略为:

  • 总是优先买优先级最高的东西;
  • 如果有多个最高优先级商品,购买价格最低的;
  • 如果有多个优先级最高且价格最低的商品,购买商品名字典序最小的。

小 A 想知道能购买哪些商品。

【输入】

第一行两个正整数M , N M, NM,N,代表预算和商品数。

之后N NN行,每行一个商品,依次为S i P i V i S_i\ P_i\ V_iSiPiVi,代表第i ii个商品的商品名、价格、优先级。

数据保证不存在两个名字相同的商品。

【输出】

按照字典序从小到大的顺序,输出所有购买商品的商品名。

【输入样例】

20 4 apple 6 8 bus 15 1 cab 1 10 water 4 8

【输出样例】

bus cab water

【算法标签】

《洛谷 B4452 优先购买》 #排序# #GESP# #2025#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=1005;// 最大物品数量// 定义物品结构体structNode{string s;// 物品名称intp;// 物品价格intv;// 物品评分/价值};Node a[N];// 存储所有物品Node b[N];// 存储购买的物品intm,n;// m: 预算, n: 物品总数intcur;// 已购买物品数量// 第一个比较函数:用于初始排序// 排序优先级:v(评分)升序 → p(价格)升序 → s(名称)字典序boolcmp(Node x,Node y){if(x.v!=y.v)returnx.v<y.v;// 先按评分升序排序if(x.p!=y.p)returnx.p<y.p;// 评分相同,按价格升序returnx.s<y.s;// 评分和价格都相同,按名称字典序}// 第二个比较函数:按名称字典序排序boolcmp2(Node x,Node y){returnx.s<y.s;// 只按名称字典序排序}intmain(){// 输入预算m和物品数量ncin>>m>>n;// 输入n个物品的信息for(inti=1;i<=n;i++){cin>>a[i].s>>a[i].p>>a[i].v;}// 步骤1:对物品进行排序// 排序规则:先按v升序,v相同按p升序,都相同按s字典序sort(a+1,a+n+1,cmp);// 步骤2:在预算范围内尽可能多地购买物品for(inti=1;i<=n;i++){// 如果当前预算足够购买第i个物品if(m>=a[i].p){m-=a[i].p;// 扣除价格b[++cur]=a[i];// 将物品加入购买列表}// 这里不能break,因为后面可能有更便宜的物理可购买}// 步骤3:对购买的物品按名称字典序排序sort(b+1,b+cur+1,cmp2);// 步骤4:输出购买的物品名称for(inti=1;i<=cur;i++){cout<<b[i].s<<endl;}return0;}

【运行结果】

20 4 apple 6 8 bus 15 1 cab 1 10 water 4 8 bus cab water
http://www.zskr.cn/news/181736.html

相关文章:

  • 在java 算法中如何 区分 A.分治 B.动态规划 C.贪心 D.回溯, 并使用案例说明
  • 【ICPS出版 | EI检索】2026年人工智能决策与管理国际学术会议(AIDMM 2026)
  • 使用Miniconda-Python3.9快速启动GitHub上的PyTorch项目
  • Pyenv rehash重新索引:Miniconda-Python3.9更新可执行文件路径
  • 深度解析驱动中国人形机器人产业变革的核心理论框架
  • 2026 年高铁广告公司如何选?综合实力领先的高铁广告服务商推荐指南 - Top品牌推荐
  • IEEE33节点配电网Simulink模型,附带有详细节点数据以及文献出处来源,MATLAB
  • 2026年靠谱降ai率工具大盘点!拒绝智商税,学姐教你高效论文降ai
  • 人形机器人动力之源,电机应用要求与变革方向
  • 2026年BI私有化部署方案商标杆推荐:智能BI本地化部署选型指南+数据可视化交付路径全解析 - 品牌2026
  • 河南无限动力:工厂短视频全链路运营领航者,月获客1000+实战服务商 - 朴素的承诺
  • 存量竞争:企业软文推广平台增长破局与宣发策略深度评测 - 资讯焦点
  • 具身智能产业深度研究:新一代“蓝领”人形机器人如何站上工厂流水线
  • 国际直飞航班怎么查更快?不同平台的信息呈现方式整理 - 资讯焦点
  • 【车辆控制】基于ROS-RRT和模糊控制的智能车路径规划附matlab代码
  • 高精密零件CNC加工定制厂家推荐排行榜:不锈钢与钛合金cnc加工厂家优选指南 - 余文22
  • Docker Build构建镜像:Miniconda-Python3.9添加自定义脚本
  • 2026年北上广深PMP项目管理考试培训机构性价比排行榜:备考推荐前十名 - 资讯焦点
  • 用TensorFlow轻松搞定医疗影像分类
  • Markdown Mermaid图表绘制:Miniconda-Python3.9集成mermaid.js
  • 2026实验台与通风柜厂家TOP5权威推荐:聚焦高安全性、高定制化核心装备 - 深度智识库
  • 2025移动车载变电站设备供应商最新推荐:专业智能化电气设备企业优选榜单 - 深度智识库
  • python基于vue的网上花店花卉购物鲜花商城系统的设计_y1zdi
  • 2026年六爪磨头推荐品牌深度解析,石材加工磨机麻头选择指南 - 工业企业赋能社
  • Pyenv local项目级指定:Miniconda-Python3.9按目录切换Python
  • 高 ROI 为核心:AI 基建选型的关键维度与行业方案对比 - 博客万
  • 从“被动防御”到“主动可控”,Aloudata Agent 让智能问数安全放心
  • 计算机三级网络技术技巧课笔记
  • Docker Top查看进程:Miniconda-Python3.9监控运行状态
  • JAVA宠物自助洗护:无人共享+物联网新方案