news 2026/4/18 12:58:38

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/4/16 19:09:33

CY5-DEX MW:10K,CY5 标记右旋糖酐(分子量 10 kDa)应用领域

CY5-DEX MW:10K&#xff0c;CY5 标记右旋糖酐&#xff08;分子量 10 kDa&#xff09;应用领域中文名称&#xff1a;CY5 标记右旋糖酐&#xff08;分子量 10 kDa&#xff09;&#xff08;CY5-DEX MW:10K&#xff09;概述与性质&#xff1a; CY5-DEX MW:10K 是一种将红色荧光染料…

作者头像 李华
网站建设 2026/4/16 13:08:16

Conda info显示环境信息:Miniconda-Python3.9查看平台细节

Miniconda-Python3.9 环境下的平台细节与开发实践 在如今的 AI 与数据科学项目中&#xff0c;一个常见但棘手的问题是&#xff1a;为什么代码在一个环境中能跑通&#xff0c;在另一个机器上却报错&#xff1f;往往根源不在代码本身&#xff0c;而在于“环境不一致”——Python …

作者头像 李华
网站建设 2026/4/16 14:22:57

亲测衡水诚信金包银店口碑排行!

亲测衡水诚信金包银店口碑排行&#xff01;在贵金属饰品领域&#xff0c;金包银制品凭借独特的魅力与性价比&#xff0c;吸引了众多消费者的目光。然而&#xff0c;当前金包银领域仍存在一些技术痛点。行业痛点分析金包银领域目前面临着诸多技术挑战。首先&#xff0c;金层厚度…

作者头像 李华
网站建设 2026/4/15 17:19:20

PyTorch安装分布式RPC:Miniconda-Python3.9支持跨节点通信

PyTorch分布式RPC实战&#xff1a;基于Miniconda-Python3.9构建跨节点通信环境 在深度学习模型日益庞大的今天&#xff0c;单机训练早已无法满足动辄数十亿参数的神经网络对算力和显存的需求。以LLaMA、BERT这类大模型为例&#xff0c;它们不仅需要多GPU并行&#xff0c;更要求…

作者头像 李华
网站建设 2026/4/18 14:13:58

Jupyter Lab集成到Miniconda-Python3.9环境的操作方法

Jupyter Lab 集成 Miniconda-Python3.9 实战指南 在数据科学与人工智能项目日益复杂的今天&#xff0c;一个稳定、可复现且交互性强的开发环境已成为高效研发的核心基础设施。你是否曾遇到过这样的场景&#xff1a;同事运行正常的代码&#xff0c;在你的机器上却因包版本冲突而…

作者头像 李华
网站建设 2026/4/18 7:09:26

IT项目管理模型4C

管理4C模型由Communication(沟通)、Coordination(协调)、Control(控制)和Creativity(创造力)组成。

作者头像 李华