news 2026/6/14 2:44:23

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 13:42:18

Pyenv install安装历史版本:Miniconda-Python3.9兼容旧项目

Pyenv 与 Miniconda 搭建 Python 3.9 历史环境&#xff1a;让旧项目重获新生 在人工智能实验室的某个深夜&#xff0c;一位研究员正准备复现一篇顶会论文的结果。他克隆了代码仓库&#xff0c;安装了依赖&#xff0c;却在运行时遇到了一连串报错&#xff1a;ModuleNotFoundErro…

作者头像 李华
网站建设 2026/6/11 20:35:40

HTML Intersection Observer:Miniconda-Python3.9实现懒加载图像

HTML Intersection Observer&#xff1a;Miniconda-Python3.9实现懒加载图像 在现代Web开发中&#xff0c;一个看似简单的图片展示页面&#xff0c;可能暗藏性能陷阱。想象一下&#xff1a;用户打开一个图文并茂的博客&#xff0c;屏幕还没来得及滚动&#xff0c;几十张高清图已…

作者头像 李华
网站建设 2026/6/10 21:38:39

Cy5-alkyne,Cy5-炔基,应用领域

Cy5-alkyne&#xff0c;Cy5-炔基&#xff0c;应用领域中文名称&#xff1a; Cy5-炔基&#xff08;Cy5-Alkyne&#xff09;概述与性质&#xff1a; Cy5-alkyne 是一种功能化的近红外荧光小分子探针&#xff0c;由红色荧光染料 Cy5 与末端炔基&#xff08;alkyne&#xff09;官能…

作者头像 李华
网站建设 2026/6/10 13:03:51

Miniconda-Python3.9环境下查看PyTorch、CUDA、cuDNN版本信息

Miniconda-Python3.9环境下查看PyTorch、CUDA、cuDNN版本信息 在深度学习项目中&#xff0c;最让人头疼的往往不是模型调参&#xff0c;而是环境配置——明明本地跑得好好的代码&#xff0c;一换到服务器就报错 CUDA not available 或者版本不兼容。这种“我这里没问题”的尴尬…

作者头像 李华
网站建设 2026/6/5 3:11:36

CY5-L-谷氨酸,CY5 标记 L-谷氨酸,应用领域

CY5-L-谷氨酸&#xff0c;CY5 标记 L-谷氨酸&#xff0c;应用领域中文名称&#xff1a;CY5 标记 L-谷氨酸&#xff08;CY5-L-Glutamic Acid&#xff09;概述与性质&#xff1a; CY5-L-谷氨酸是一种将红色荧光染料 CY5 与天然氨基酸 L-谷氨酸偶联形成的功能化分子。L-谷氨酸作为…

作者头像 李华