news 2026/10/13 4:13:18

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/10/6 11:31:23

GPT-SoVITS在语音电子书自动生成平台中的核心作用

GPT-SoVITS&#xff1a;如何让电子书“用你的声音”朗读&#xff1f; 在有声内容爆发的今天&#xff0c;越来越多用户不再满足于千篇一律的AI主播音色。他们想要的是——自己的声音&#xff0c;读出那本珍藏多年的电子书&#xff1b;是亲人的语调&#xff0c;讲述睡前故事给孩子…

作者头像 李华
网站建设 2026/10/12 4:54:58

如何在Windows/Linux/Mac上完美安装Open-AutoGLM?跨平台实操教程来了

第一章&#xff1a;Open-AutoGLM 简介与核心价值Open-AutoGLM 是一个开源的自动化通用语言模型&#xff08;General Language Model, GLM&#xff09;推理与优化框架&#xff0c;专为提升大语言模型在实际业务场景中的部署效率与推理性能而设计。该框架融合了模型压缩、动态批处…

作者头像 李华
网站建设 2026/10/10 14:07:30

Open-AutoGLM用腻了?这3款国产神器让你效率翻倍(开发者私藏推荐)

第一章&#xff1a;Open-AutoGLM类似的app哪个好用在当前自动化与大模型融合的背景下&#xff0c;Open-AutoGLM 作为一款支持自然语言驱动任务自动化的应用&#xff0c;受到广泛关注。然而&#xff0c;市场上也涌现出若干功能类似、架构相近的替代工具&#xff0c;它们在易用性…

作者头像 李华
网站建设 2026/10/12 3:22:08

30、Elasticsearch高级功能与集群管理详解

Elasticsearch高级功能与集群管理详解 1. 搜索结果分数变化 运行示例查询时,结果如下: {..."authorsAutocomplete" : [ {"text" : "fyo","offset" : 0,"length" : 3,"options" : [ {"text" : &qu…

作者头像 李华
网站建设 2026/10/11 22:24:42

大模型研发进入无人区,智谱Open-AutoGLM如何领跑?

第一章&#xff1a;大模型研发的无人区挑战在人工智能技术快速演进的当下&#xff0c;大模型的研发已进入“无人区”——一个缺乏先验经验、理论支撑和成熟工程范式的技术深水区。研究人员不仅要面对算力成本指数级增长的现实压力&#xff0c;还需解决数据质量、模型可解释性与…

作者头像 李华
网站建设 2026/10/12 21:30:16

揭秘Open-AutoGLM本地部署全流程:从环境搭建到成功运行的每一个细节

第一章&#xff1a;揭秘Open-AutoGLM本地部署全流程&#xff1a;从环境搭建到成功运行的每一个细节在大模型应用日益普及的今天&#xff0c;Open-AutoGLM 作为一款支持自动化任务处理与自然语言理解的开源模型&#xff0c;正受到开发者广泛关注。实现其本地化部署不仅能保障数据…

作者头像 李华