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

GESP认证C++编程真题解析 | 202312 四级

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

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

适合人群:

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

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


编程题

B3927 小杨的字典

【题目来源】

洛谷:[B3927 GESP202312 四级] 小杨的字典 - 洛谷

【题目描述】

在遥远的星球,有两个国家 A 国和 B 国,他们使用着不同的语言:A 语言和 B 语言。小杨是 B 国的翻译官,他的工作是将 A 语言的文章翻译成 B 语言的文章。

为了顺利完成工作,小杨制作了一本字典,里面记录了 \(N\) 个 A 语言单词对应的 B 语言单词,巧合的是,这些单词都由地球上的 26 个小写英文字母组成。

小杨希望你写一个程序,帮助他根据这本字典翻译一段 A 语言文章。这段文章由标点符号 !()-[]{}\|;:'",./?<> 和一些 A 语言单词构成,每个单词之间必定由至少一个标点符号分割,你的程序需要把这段话中的所有 A 语言单词替换成它的 B 语言翻译。特别地,如果遇到不在字典中的单词,请使用大写 UNK 来替换它。

例如,小杨的字典中包含 \(2\) 个 A 语言单词 abcd,它们的 B 语言翻译分别为 adef,那么我们可以把 A 语言文章 abc.d.d.abc.abcd. 翻译成 B 语言文章 a.def.def.a.UNK. 其中,单词 abcd 不在词典内,因此我们需要使用 UNK 来替换它。

【输入】

第一行一个整数 \(N\),表示词典中的条目数。保证 \(N \le 100\)

接下来 \(N\) 行,每行两个用单个空格隔开的字符串 \(A\)\(B\) ,分别表示字典中的一个 A 语言单词以及它对应的 B 语言翻译。保证所有 \(A\) 不重复;保证 \(A\)\(B\) 的长度不超过 \(10\)

最后一行一个字符串 \(S\) ,表示需要翻译的 A 语言文章。保证字符串 \(S\) 的长度不超过 \(1000\),保证字符串 \(S\) 只包含小写字母以及标点符号 !()-[]{}\|;:'",./?<>

【输出】

输出一行,表示翻译后的结果。

【输入样例】

2
abc a
d def
abc.d.d.abc.abcd.

【输出样例】

a.def.def.a.UNK.

【算法标签】

《洛谷 B3927 小杨的字典》 #GESP# #2023#

【代码详解】

#include <bits/stdc++.h>
using namespace std;int n;                          // 字典条目数
map<string, string> mp;        // 字典:单词 -> 翻译int main()
{// 输入字典大小cin >> n;// 读入字典for (int i = 1; i <= n; i++){string a, b;cin >> a >> b;          // a: 单词, b: 翻译mp[a] = b;              // 建立映射}// 输入待翻译的字符串string s;cin >> s;string t = "";              // 临时存储当前识别的单词int i;// 遍历输入字符串for (i = 0; i < s.size(); i++){// 如果是小写字母,加入到当前单词if (islower(s[i])){t += s[i];}else{// 遇到非小写字母,表示单词结束if (t != ""){// 查找字典if (mp.count(t)){cout << mp[t];  // 输出翻译}else{cout << "UNK";  // 未知单词}t = "";  // 清空临时单词}// 输出当前的非字母字符(保持原样)cout << s[i];}}// 处理末尾可能剩余的单词if (t != ""){if (mp.count(t)){cout << mp[t];}else{cout << "UNK";}}// 问题:这里输出s[i]会越界,因为循环结束i==s.size()// 应该是想要输出最后一个字符?但实际不应该在这里输出// cout << s[i];  // 这行应该删除return 0;
}

【运行结果】

2
abc a
d def
abc.d.d.abc.abcd.
a.def.def.a.UNK.

B3928 田忌赛马

【题目来源】

洛谷:[B3928 GESP202312 四级] 田忌赛马 - 洛谷

【题目描述】

你要和田忌赛马。你们各自有 \(N\) 匹马,并且要进行 \(N\) 轮比赛,每轮比赛,你们都要各派出一匹马决出胜负。

你的马匹的速度分别为 \(u_1,u_2,\cdots,u_n\),田忌的马匹的速度分别为 \(v_1,v_2,\cdots,v_n\)。田忌会按顺序派出他的马匹,请问你要如何排兵布阵,才能赢得最多轮次的比赛?巧合的是,你和田忌的所有马匹的速度两两不同,因此不可能出现平局。

【输入】

第一行一个整数 \(N\)。保证 \(1\le N \le 5\times 10^4\)

接下来一行 \(N\) 个用空格隔开的整数,依次为 \(u_1,u_2,\cdots,u_n\),表示你的马匹们的速度。保证 \(1\le u_i\le 2N\)

接下来一行 \(N\) 个用空格隔开的整数,依次为 \(v_1,v_2,\cdots,v_n\),表示田忌的马匹们的速度。保证 \(1\le v_i\le 2N\)

【输出】

输出一行,表示你最多能获胜几轮。

【输入样例】

3
1 3 5
2 4 6

【输出样例】

2

【算法标签】

《洛谷 B3928 田忌赛马》 #贪心# #排序# #双指针two-pointer# #GESP# #2023#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 50005;  // 最大数组长度
int n;                // 数组大小
int ans;              // 答案:满足条件的配对数量
int u[N], v[N];       // 两个数组int main()
{// 输入数组大小cin >> n;// 输入并排序数组ufor (int i = 1; i <= n; i++){cin >> u[i];}sort(u + 1, u + n + 1);// 输入并排序数组vfor (int i = 1; i <= n; i++){cin >> v[i];}sort(v + 1, v + n + 1);// 双指针贪心匹配int j = 1;  // u数组的指针// 遍历v数组for (int i = 1; i <= n; i++){// 跳过所有小于v[i]的u[j]while (j <= n && u[j] < v[i]){j++;}// 调试输出// cout << "j " << j << endl;// 如果找到满足条件的u[j](即u[j] >= v[i])if (j <= n){ans++;  // 成功配对数加1j++;    // 这个u[j]已被使用,指针后移}else{// 没有更多可用的u,提前结束break;}}// 输出结果cout << ans << endl;return 0;
}

【运行结果】

3
1 3 5
2 4 6
2
http://www.jsqmd.com/news/268588/

相关文章:

  • 2026 年靠谱的一键闪测仪厂家推荐及选购指南 - 工业仪器权威说
  • 迪赛福闪测仪:高效测量与精度稳定,助力制造升级 - 工业仪器权威说
  • 我花了 2 周用 cursor 把 Couple AI 重新做了一遍:从“能用”到“值得用”
  • 32432423
  • GESP认证C++编程真题解析 | 202312 三级
  • 详细介绍:安全体检 | 服务器的终极卫士
  • 解锁NanoBananaPro的6大应用场景:表情包、商品图、总结纲要、产品logo、漫画原创、文字转图片……
  • 2025年广佛双主轴加工中心用户推荐榜单出炉,46排刀机/Y轴/数控4+4/双主轴双刀塔/刀塔车床/数控车床/排刀机双主轴品牌选哪家 - 品牌推荐师
  • 计算机毕业设计案例】基于springboot的成人小饭桌预约下单配送微信小程序(程序+文档+讲解+定制)
  • 2026年铜锌分离炉深度选型报告:谁是高效冶金与环保回收的“破局者” - 电炉老饕
  • leetcode 1895. 最大的幻方 中等
  • 你的SCI论文总被拒?中国学生最易踩的6个坑
  • Gitee:2026年企业数字化转型中的项目管理核心引擎
  • 2026阀门管件铸造厂家权威推荐榜单:硅溶胶精密铸造/不锈钢铸造/碳钢精密铸造/非标铸造件源头厂家精选。
  • Gitee:中国企业数字化转型的核心技术引擎
  • 2026年四川机电设备制造空压机/ 螺杆空压机 /无油空压机 /静音空压机 /激光空压行业竞争格局深度分析报告:聚焦“智能数控化与集成解决方案” - 2026年企业推荐榜
  • 【毕业设计】基于springboot的成人小饭桌微信小程序(源码+文档+远程调试,全bao定制等)
  • 注意!这几家正规丙烯酸厂家,你必读!
  • 一键批量提取并导出海量照片的GPS与Exif信息,构建你的空间数据库【技术人必备的效率利器】
  • 通义万相15秒长视频生成功能深度技术讲解:从扩散模型到影视级创作的完整路径
  • 这几个低代码数据采集爬虫工具,非常强大~
  • 2026年南京西门子变频器回收公司推荐榜:金南磊机电回收中心,AB罗克韦尔回收/工控原件回收/西门子回收/西门子触摸屏回收/AB罗克韦尔模块回收/AB罗克韦尔触摸屏回收/电子原件回收公司精选
  • ASTM D4169抗压测试全解析:守护物流astmd4169包装安全的核心标准
  • GESP认证C++编程真题解析 | 202312 二级
  • ASTM D4169温度测试:筑牢产品运输astmd4169安全的环境防线
  • 在线VOCs厂家实力对比:技术与服务谁更胜一筹? - 品牌推荐大师1
  • 振动抛光机哪个品牌评价好?质量、耐用性和售后全评测 - 品牌推荐大师
  • AI大模型提示词公式
  • (新界面)NVR运动检测配置指导
  • 技术破局:低代码如何重构建筑业数字化底层逻辑?