GESP认证C++编程真题解析 | 202309 六级

news/2026/1/18 21:54:50/文章来源:https://www.cnblogs.com/guolianggsta/p/19499218

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

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

适合人群:

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

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


编程题

B3873 小杨买饮料

【题目来源】

洛谷:[B3873 GESP202309 六级] 小杨买饮料 - 洛谷

【题目描述】

小杨来到了一家商店,打算购买一些饮料。这家商店总共出售 \(N\) 种饮料,编号从 \(0\)\(N-1\),其中编号为 \(i\) 的饮料售价 \(c_i\) 元,容量 \(l_i\) 毫升。

小杨的需求有如下几点:

  1. 小杨想要尽可能尝试不同种类的饮料,因此他希望每种饮料至多购买 \(1\) 瓶;
  2. 小杨很渴,所以他想要购买总容量不低于 \(L\) 的饮料;
  3. 小杨勤俭节约,所以在 \(1\)\(2\) 的前提下,他希望使用尽可能少的费用。

方便起见,你只需要输出最少花费的费用即可。特别地,如果不能满足小杨的要求,则输出 no solution

【输入】

第一行两个整数 \(N,L\)

接下来 \(N\)行,依次描述第 \(i=0,1,\cdots,N-1\) 种饮料:每行两个整数 \(c_i,l_i\)

【输出】

输出一行一个整数,表示最少需要花费多少钱,才能满足小杨的要求。特别地,如果不能满足要求,则输出 no solution

【输入样例】

5 100 
100 2000
2 50
4 40
5 30
3 20

【输出样例】

9

【算法标签】

《洛谷 B3873 小杨买饮料》 #动态规划DP# #背包DP# #GESP# #2023#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 505;            // 最大物品数量
const int INF = 0x3f3f3f3f;   // 定义无穷大
int n, L;                     // n: 物品数量, L: 最小需要的长度
int c[N], l[N];               // c[i]: 第i个物品的价格, l[i]: 第i个物品的长度
int dp[1000005];              // dp[j]: 总长度至少为j时的最小花费int main()
{// 输入物品数量和需要的最小长度cin >> n >> L;// 输入每个物品的价格和长度for (int i = 1; i <= n; i++){cin >> c[i] >> l[i];}// 初始化dp数组为无穷大memset(dp, 0x3f, sizeof(dp));dp[0] = 0;  // 总长度为0时的最小花费为0// 动态规划:0-1背包的变形(至少型背包)for (int i = 1; i <= n; i++)  // 遍历每个物品{for (int j = 1000000; j >= l[i]; j--)  // 从大到小遍历,保证每个物品只用一次{// 状态转移方程:// 不选当前物品:dp[j] 保持不变// 选当前物品:dp[j-l[i]] + c[i]// 取两者最小值dp[j] = min(dp[j], dp[j - l[i]] + c[i]);}}// 在满足长度至少为L的所有方案中寻找最小花费int ans = INF;for (int i = L; i <= 1000000; i++){ans = min(ans, dp[i]);}// 输出结果if (ans == INF){// 没有找到满足条件的方案cout << "no solution" << endl;}else{// 输出最小花费cout << ans << endl;}return 0;
}

【运行结果】

5 100
100 2000
2 50
4 40
5 30
3 20
9

小杨的握手问题

【题目来源】

洛谷:[B3874 GESP202309 六级] 小杨的握手问题 - 洛谷

【题目描述】

小杨的班级里共有 \(N\) 名同学,学号从 \(0\)\(N-1\)

某节课上,老师安排全班同学进行一次握手游戏,具体规则如下:老师安排了一个顺序,让全班 \(N\) 名同学依次进入教室。每位同学进入教室时,需要和 已经在教室内学号小于自己 的同学握手。

现在,小杨想知道,整个班级总共会进行多少次握手。

提示:可以考虑使用归并排序进行降序排序,并在此过程中求解。

【输入】

输入包含 \(2\) 行。第一行一个整数 \(N\) ,表示同学的个数;第二行 \(N\) 个用单个空格隔开的整数,依次描述同学们进入教室的顺序,每个整数在 \(0 \sim N-1\) 之间,表示该同学的学号。

保证每位同学会且只会进入教室一次。

【输出】

输出一行一个整数,表示全班握手的总次数。

【输入样例】

4 
2 1 3 0

【输出样例】

2

【算法标签】

《洛谷 B3874 小杨的握手问题》 #树状数组# #递归# #排序# #GESP# #2023#

【代码详解】

#include <bits/stdc++.h>
using namespace std;#define int long long
const int N = 300005;  // 树状数组大小,要大于最大可能的值
int n;                 // 数组长度
int ans;               // 逆序对总数
int tr[N];             // 树状数组/*** 计算lowbit:返回x的二进制表示中最低位的1所对应的值* 例如:lowbit(6)=2,因为6的二进制是110,最低位的1表示2* @param x 输入数字* @return lowbit值*/
int lowbit(int x)
{return x & -x;  // 利用补码性质:x & -x
}/*** 树状数组更新操作* 在位置x上增加c* @param x 更新位置* @param c 增加的值*/
void add(int x, int c)
{// 从x开始,沿lowbit路径向上更新所有包含x的区间for (int i = x; i <= N; i += lowbit(i)){tr[i] += c;}
}/*** 树状数组查询操作* 查询前缀和[1, x]* @param x 查询位置* @return 前缀和*/
int query(int x)
{int res = 0;// 从x开始,沿lowbit路径向下累加for (int i = x; i; i -= lowbit(i)){res += tr[i];}return res;
}signed main()  // 因为使用了#define int long long
{// 输入数组长度cin >> n;// 从后向前遍历数组for (int i = n; i >= 1; i--){int x;cin >> x;x++;  // 将数值从0-based转为1-based,避免树状数组处理0// 查询在当前位置之前(在原始顺序中)有多少个比x小的数// 因为是从后向前遍历,所以query(x)返回的是已经处理过的数中小于等于x的数量// 但我们需要的是严格小于x的数量,所以这里有问题ans += query(x);// 将当前数加入树状数组add(x, 1);}// 输出逆序对总数cout << ans << endl;return 0;
}

【运行结果】

4 
2 1 3 0
2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1179540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一、二、三章 习题总结

习题 2-6&#xff08;P35&#xff09;用1,2,3&#xff0c;&#xff0c;9 组成3个三位数 abc &#xff0c; def 和 ghi &#xff0c;每个数字恰好使用一次&#xff0c;要求 abc &#xff1a; def &#xff1a; ghi 1:2:3 。按照“abc def ghi”的格式输出所有解&#xff0c;每行…

人群仿真软件:AnyLogic_(4).行人库功能详解

行人库功能详解 行人库简介 AnyLogic 的行人库&#xff08;Pedestrian Library&#xff09;是专门用于模拟行人行为的强大工具。行人库提供了一系列的图形化组件和编程接口&#xff0c;使用户能够轻松地创建复杂的行人仿真模型。这些模型可以用于研究和优化行人流量、安全性和舒…

GESP认证C++编程真题解析 | 202306 一级

​欢迎大家订阅我的专栏:算法题解:C++与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的…

2026苏州装修哪家强?覆盖不同业主的装修需求的十大装修公司! - 品牌测评鉴赏家

2026苏州装修哪家强?覆盖不同业主的装修需求的十大装修公司!一.引言:装修的纠结与选择 家,是每个人心灵的避风港,而装修则是赋予这个港湾独特魅力与舒适的关键。当你怀揣着对未来家的美好憧憬,准备开启装修之旅时…

提示工程架构师必学:用Few-shot Learning增强提示情境感知的AI技巧

提示工程架构师必学:用Few-shot Learning增强提示情境感知的AI技巧 引言:为什么你的AI总是“get不到”上下文? 作为提示工程架构师,你可能遇到过这样的场景: 让AI写一封商务投诉回复邮件,结果它用了“嗨,哥们”这种口语化表达; 让AI解决Python性能优化问题,它却给出…

用 Python 实现芯片性能优化模型

用 Python 实现芯片性能优化模型 一招看懂“软硬协同”的性能优化术 + 工程级落地 作者:Echo_Wish 一、引子:芯片性能优化不是写个 Benchmark 那么简单 你可能见过这样的场景: 新芯片发布 Benchmark 跑出一溜亮眼数字 结果项目一上机器: ➤ 延迟高 ➤ 能耗飙 ➤ 频繁热降…

【计算机毕业设计案例】基于微信小程序的校园跑腿小程序基于springboot+微信小程序的校园外卖直送平台(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

开源大模型选择指南:精准匹配需求 + LLaMA-Factory Online高效落地

开源大模型选择指南:精准匹配需求 + LLaMA-Factory Online高效落地在开源大模型百花齐放的时代,选择适配自身需求的模型是第一步,而高效实现模型部署、微调与应用落地,则是发挥模型价值的关键。LLaMA-Factory Onli…

2026船用法兰市场盘点:哪些公司口碑载道值得选?不锈钢管板/不锈钢法兰/高温合金法兰,船用法兰供应商哪家权威 - 品牌推荐师

作为船舶管道系统的核心连接件,船用法兰的质量直接关系到船舶航行安全与作业效率。据中国船舶工业行业协会最新数据,2025年国内船用法兰市场规模达42亿元,同比增长18%,但市场存在产品标准不统一、非标定制能力参差…

到一个不可思议的Python库——Envoy

大家好&#xff0c;今天我们要聊聊一个你可能没有太注意过&#xff0c;但它却能为你的Python项目带来不少便利的库——Envoy。是不是感觉这个名字听起来像是某个神秘的组织&#xff1f;其实它是一个非常实用的Python库&#xff0c;专门用来简化与外部命令交互的操作。嗯&#x…

阿里Java面试被问:WebSocket的心跳检测和自动重连实现

一、核心概念与必要性 为什么需要心跳检测和重连&#xff1f; 网络不稳定&#xff1a;移动网络、Wi-Fi切换、代理服务器可能导致连接断开 服务器限制&#xff1a;Nginx/负载均衡器默认30-60秒超时 浏览器限制&#xff1a;部分浏览器标签页休眠时暂停WebSocket 资源清理&…

机器学习项目:矿物分类系统重制版

在地质勘探、矿产开发等领域&#xff0c;矿物分类是一项核心任务。传统人工分类依赖专业经验&#xff0c;效率低且主观性强&#xff0c;而机器学习技术能通过矿物的特征数据实现自动化、高精度分类。本文将分享一个完整的矿物分类项目&#xff0c;涵盖数据预处理、缺失值处理、…

JavaWeb从入门到进阶(vue与Ajax Axios)

什么是Vue: Vue是一套前端框架&#xff0c;免除原生javaScript中的DOM操作&#xff0c;简化书写。 基于MVVM(Model-View-ViewModel)思想&#xff0c;实现数据的双向绑定&#xff0c;将编程的关注点放在数据上本质区别&#xff1a;原生JS&#xff1a;你要告诉浏览器每一步怎么做…

上下文理解在智能家居AI应用中的落地实践

上下文理解在智能家居AI应用中的落地实践:从理论到场景的全链路解析 元数据框架 标题 上下文理解在智能家居AI应用中的落地实践:从理论到场景的全链路解析 关键词 上下文理解、智能家居AI、意图推断、场景适配、边缘计算、隐私保护、多模态融合 摘要 本文系统解析了上…

2026法式轻奢风装修指南:探寻专业设计师所在公司 - 品牌测评鉴赏家

2026法式轻奢风装修指南:探寻专业设计师所在公司一.法式轻奢风格魅力初现 在众多装修风格的璀璨星空中,法式轻奢风格宛如一颗独特的星辰,散发着迷人且令人沉醉的光芒,吸引着无数追求高品质生活的人们。当你踏入一个…

探寻新中式装修的宝藏公司,2026让家演绎东方雅韵 - 品牌测评鉴赏家

探寻新中式装修的宝藏公司,2026让家演绎东方雅韵一.新中式风格:传统与现代的诗意交融 在当今多元化的装修风格中,新中式风格宛如一颗璀璨的明珠,散发着独特的魅力。它不是对传统中式风格的简单复刻,而是在保留中式…

交通仿真软件:VISSIM_(18).交通仿真在交通安全分析中的应用

交通仿真在交通安全分析中的应用 1. 交通安全分析的背景和意义 交通安全是交通系统中一个至关重要的组成部分&#xff0c;直接影响着人们的生活质量和经济活动的效率。随着城市化进程的加快和交通流量的剧增&#xff0c;交通安全问题日益凸显。交通仿真软件如VISSIM可以通过模拟…

JavaWeb从入门到进阶(前端工程化)

前后端分离开发&#xff1a;需求分析---接口定义-----前后端并行开发--------测试前后端联调测试YAPI介绍:YApi是高效、易用、功能强大的api管理平台&#xff0c;旨在为开发、产品、测试人员提供更优雅的接口管理服务 地址:http://yapi.smart-xwork.cn/添加项目&#xff0c;添加…

AI 怎么做自动化伦理监测?

AI 怎么做自动化伦理监测? 一篇让你既看懂逻辑、又能上手落地的实践指南 作者|Echo_Wish 一、为什么现在 “AI 伦理监测”变得这么重要? 说白了: AI 不是数学题,它是“对人类现实世界产生影响的系统”。 而现实世界里: 有偏见 有歧视 有误导 有侵权 有误用 有恶意利用…

交通仿真软件:VISSIM_(21).交通仿真的未来趋势与挑战

交通仿真的未来趋势与挑战 在交通仿真领域&#xff0c;随着技术的不断发展和城市化进程的加快&#xff0c;交通仿真软件面临着新的趋势和挑战。本节将探讨交通仿真软件在未来的发展方向&#xff0c;以及这些趋势带来的技术挑战和解决方案。 1. 多模式交通仿真 1.1 原理 多模式交…