微网站分享功能长沙网络销售公司
2026/5/14 5:09:57 网站建设 项目流程
微网站分享功能,长沙网络销售公司,怎么做二维码直接进入网站,精通网站建设 100%全能建站密码pdfB4452 [GESP202512 四级] 优先购买 题目描述 小 A 有 MMM 元预算。商店有 NNN 个商品#xff0c;每个商品有商品名 SSS、价格 PPP 和优先级 VVV 三种属性#xff0c;其中 VVV 为正整数#xff0c;且 VVV 越小代表商品的优先级越高。 小 A 的购物策略为#xff1a; 总是优先…B4452 [GESP202512 四级] 优先购买题目描述小 A 有MMM元预算。商店有NNN个商品每个商品有商品名SSS、价格PPP和优先级VVV三种属性其中VVV为正整数且VVV越小代表商品的优先级越高。小 A 的购物策略为总是优先买优先级最高的东西如果有多个最高优先级商品购买价格最低的如果有多个优先级最高且价格最低的商品购买商品名字典序最小的。小 A 想知道能购买哪些商品。输入格式第一行两个正整数M,NM, NM,N代表预算和商品数。之后NNN行每行一个商品依次为Si Pi ViS_i\ P_i\ V_iSi​Pi​Vi​代表第iii个商品的商品名、价格、优先级。数据保证不存在两个名字相同的商品。输出格式按照字典序从小到大的顺序输出所有购买商品的商品名。输入输出样例 #1输入 #120 4 apple 6 8 bus 15 1 cab 1 10 water 4 8输出 #1bus cab water说明/提示数据范围对于所有测试点保证1≤∣Si∣≤101 \leq |S_i| \leq 101≤∣Si​∣≤101≤M,Pi≤1051 \leq M, P_i \leq 10^51≤M,Pi​≤1051≤N≤1031 \leq N \leq 10^31≤N≤1031≤Vi≤101 \leq V_i \leq 101≤Vi​≤10。商品名仅由小写字母组成且不存在两个相同的商品名。题解优先购买解题思路我解决这道题的核心思路是**“先按规则排序商品再按优先级依次购买最后整理输出结果”**整体分为三个关键步骤数据封装使用结构体统一存储每个商品的名称、价格、优先级方便后续排序和遍历自定义排序严格遵循题目要求的三层优先级优先级v→价格p→名字典序对所有商品进行排序确保靠前的商品是当前最该购买的模拟购买与结果整理遍历排序后的商品预算足够则购买并记录商品名最后将购买列表按字典序排序后输出满足题目输出要求。#includebits/stdc.h// 包含所有常用标准库头文件简化编程流程usingnamespacestd;// 使用std命名空间避免重复书写std::前缀intm,n;// 定义全局变量m存储初始预算n存储商品总数structnode{// 定义结构体node用于封装单个商品的所有属性string s;// 商品名称intp;// 商品价格intv;// 商品优先级v越小优先级越高};node a[1005];// 定义结构体数组存储所有商品大小1005满足n≤1000的要求vectorstringname;// 定义字符串向量存储最终成功购买的商品名// 自定义排序函数cmp严格按照题目要求的优先级规则排序boolcmp(node x,node y){// 第一关键字优先级vv越小越靠前优先购买高优先级商品if(x.v!y.v)returnx.vy.v;// 第二关键字价格p优先级相同时价格越低越靠前if(x.p!y.p)returnx.py.p;// 第三关键字商品名字典序优先级和价格都相同时字典序越小越靠前returnx.sy.s;}intmain(){cinmn;// 输入初始预算m和商品数量n// 循环n次输入每个商品的名称、价格、优先级存入结构体数组afor(inti1;in;i){cina[i].sa[i].pa[i].v;}// 对结构体数组a进行排序从第1个到第n个元素排序规则为自定义的cmp函数sort(a1,an1,cmp);// 遍历排序后的商品按照优先级顺序尝试购买for(inti1;in;i){// 如果当前商品价格≤剩余预算说明可以购买if(a[i].pm){name.push_back(a[i].s);// 将该商品名加入购买列表m-a[i].p;// 剩余预算减去当前商品价格更新预算}}// 题目要求输出时按商品名字典序从小到大排列因此对购买列表排序sort(name.begin(),name.end());// 循环遍历购买列表逐行输出每个商品名for(inti0;iname.size();i){coutname[i]\n;}return0;// 程序正常结束}代码分步解析数据结构定义我用struct node封装了商品的三个属性避免零散变量管理的混乱结构体数组a[1005]用于存储所有商品vectorstring name用于动态记录购买的商品名灵活且方便后续排序。自定义排序函数核心这是实现题目购买策略的关键我按题目要求分层定义排序规则第一层优先级v从小到大x.v y.v保证优先购买优先级最高的商品第二层价格p从小到大x.p y.p保证优先级相同时购买最低价商品第三层商品名字典序从小到大x.s y.s保证前两个条件相同时购买字典序最小的商品。主函数逻辑输入数据先读取预算m和商品数n再循环读取每个商品的信息存入结构体数组商品排序使用C标准库sort函数结合自定义cmp函数完成商品优先级排序模拟购买遍历排序后的商品判断预算是否足够足够则购买并更新预算同时记录商品名结果整理与输出由于题目要求输出按字典序排列因此先对购买列表排序再逐行输出。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询