news 2026/4/29 9:18:20

2023年信息学奥赛CSP-S2提高组复赛题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2023年信息学奥赛CSP-S2提高组复赛题解

2023年信息学奥赛CSP-S2提高组复赛题解

进阶比赛代码量比较大了

零、背景

今天来看看 2023 CSP-S 的题解吧。

A: 枚举

B: 动态规划、next函数、前缀hash、前缀矩阵

C: 模拟

D: 二分套二分+数学公式

一、密码锁(lock)


题意:密码锁有五个拨圈,每个拨圈有 10 个数字,分别是 0 到 9。

假设正确密码是 X,加锁时会使用规则1或者规则2随机转动一次密码锁,从而得到锁车后的密码。

现在告诉你 N 个锁车后的密码(都是使用正确密码按规则得到的),问可能的正确密码有多少个。

规则1:选择一个拨圈转动一个角度

规则2:选择相邻的拨圈转动相同的角度。

思路:枚举

由于锁车后密码不能是自己,所以转动的位置只能是其他 9 个位置。

规则1共有5*9=45种转动方式。

规则2共有4*9=36种转动方式。

unordered_map<ll, ll> h; vector<ll> base = {1, 10, 100, 1000, 10000, 100000}; const int N = 5; const int M = 9; ll Flap(const ll num, int i, int j) { int v = (num / base[i]) % 10; ll V = (v + j) % 10; return num - v * base[i] + V * base[i]; } void SolverOne(const ll num) { // 1 个 for (int i = 0; i < N; i++) { for (int j = 1; j <= M; j++) { const ll newNum = Flap(num, i, j); h[newNum]++; } } // 转动两个 for (int i = 1; i < N; i++) { for (int j = 1; j <= M; j++) { const ll newNum = Flap(Flap(num, i - 1, j), i, j); h[newNum]++; } } }

对于每个锁车后的密码,枚举所有规则的转法,得到疑似的正确密码。

最后统计所有疑似的正确密码,如果都可以有 N 个锁车后密码得到,则就是可能的正确密码。

ll ans = 0; for (auto [k, v] : h) { if (v == n) { ans++; } } printf("%lld\n", ans);

二、消消乐(game)

题意:给一个数组,每次可以消除相邻相同的元素,问所有非空子串中,有多少个子串是可以消除的。

思路:多种解法

一个字符串是否可消除

先思考,对于一个字符串,什么时候是可以消除的。

显然可以贪心,使用一个栈来保存剩余的未消除的前缀或后缀的字符。

如果到最后栈为空,则可以全部消除,否则不可以全部消除。

暴力解法

枚举子串的结束位置,维护一个待消除的栈,每次栈为空时,就代表当前子串是可消除的。

复杂度:O(n2)O(n^2)O(n2)

得分:50分

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 2:11:25

Open-AutoGLM基座选择之谜(基于GLM的自动推理引擎构建内幕)

第一章&#xff1a;Open-AutoGLM已GLM为基座 Open-AutoGLM 是一个基于 GLM&#xff08;General Language Model&#xff09;架构构建的开源自动化语言处理框架&#xff0c;旨在通过扩展 GLM 的推理与生成能力&#xff0c;实现复杂任务的自主拆解与执行。该系统继承了 GLM 系列模…

作者头像 李华
网站建设 2026/4/25 7:54:59

从金融到医疗,Open-AutoGLM的7个核心应用场景你了解几个?

第一章&#xff1a;Open-AutoGLM在金融领域的智能决策支持在金融行业&#xff0c;快速、准确的决策能力直接关系到风险控制与投资回报。Open-AutoGLM 作为一种基于大语言模型的自动化推理系统&#xff0c;能够高效处理非结构化文本数据&#xff0c;如财报、新闻公告和市场评论&…

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

Open-AutoGLM技术内幕(首次公开智谱自动化训练 pipeline 架构)

第一章&#xff1a;Open-AutoGLM技术路径的起源与愿景在人工智能快速演进的背景下&#xff0c;大语言模型&#xff08;LLM&#xff09;正逐步从封闭系统向开放生态演进。Open-AutoGLM 作为新一代开源自动语言理解框架&#xff0c;其诞生源于对通用语义理解能力民主化的追求。该…

作者头像 李华
网站建设 2026/4/25 5:55:23

Java如何支持信创环境的大文件上传与断点续传需求?

我&#xff0c;某IT企业技术总监&#xff0c;聊聊这套“高可靠、强兼容”大文件传输解决方案的落地实践 作为服务过300政企客户的技术负责人&#xff0c;我太清楚大文件传输场景的“坑”了——从100G文件的断点续传稳定性&#xff0c;到IE8兼容的技术攻坚&#xff1b;从文件夹…

作者头像 李华
网站建设 2026/4/19 3:35:29

Java如何利用代码示例实现大文件上传的解决方案分享?

大文件传输系统建设方案 一、需求分析与技术选型 作为福建IT行业软件公司项目负责人&#xff0c;针对公司当前大文件传输需求&#xff0c;经过详细技术调研和业务分析&#xff0c;我提出以下技术方案&#xff1a; 1.1 核心需求痛点 现有开源组件无法满足&#xff1a; 文件夹…

作者头像 李华
网站建设 2026/4/25 22:46:02

Open-AutoGLM源码路径完整梳理(含GitHub项目结构解读与调试技巧)

第一章&#xff1a;Open-AutoGLM源码路径Open-AutoGLM 是一个面向自动化生成语言模型训练流程的开源框架&#xff0c;其源码结构设计清晰&#xff0c;模块化程度高&#xff0c;便于开发者快速定位核心功能实现。项目采用标准 Python 包结构组织代码&#xff0c;主目录下包含关键…

作者头像 李华