CF Round 785 Div2 题解
A题 Subtle Substring Subtraction(贪心)
给定一个长度为 的字符串,两个人 轮流进行游戏。
每当轮到 时,他可以从现在的小写字母字符串中取走一个长度为偶数的子串并得到对应分数,而 则只能取走长度为奇数的子串。
两个人均采取最优策略行动,问最后字符串为空的时候,谁的得分最高,比另外一个人高多少分?
一个字符串的对应分数定义: 对应 , 对应 ,以此内推,字符串的分数就是每个字符对应分数之和(例如 )
时,显然 无法操作,然后 拿走, 取胜。
为偶数时,直接让 拿走所有字符即可, 取胜。
为奇数时,最好的方法就是拿走一个 长度的子串(这种方案得分最优),且 必胜(如果存在着 拿一个字符的分数超过那 的分数的情况,例如 ,那 可以选择去拿包含 的那个子串),只要判断一手拿 还是 即可。
B题 A Perfectly Balanced String? (枚举+前缀和 / 思维)
给定一个小写字母字符串 ,问对于任意一个三元组 ( 是 的子串, 都是 中的字符), 的出现次数和 的出现次数之差都小于等于 1?
方法1:枚举+前缀和
我们简化问题:给定字符 ,是否 的所有子串都满足该性质?
我们考虑做一次前缀和( 分别表示区间 上 出现的次数),那么一旦出现不满足性质的情况,就说明存在 ,满足 或者 。
我们构造 ,那么不满足性质的情况就变为了 或 。换言之,我们直接在 数组中找两个绝对值相差超过 的元素即可,直接排序后比较 和 就搞定了。
那么,扩展到本题,因为小写字母一共只有 26 个,所以可以直接枚举所有可能,最坏复杂度为 。(这个居然能过,我怀疑换个评测机就 G 了)
(其实没必要这么赶,找最大最小值只需要 遍历一遍就行了)
方法2:思维+结论
当且仅当字符串具有周期性,且一个循环节内所有字符各不相同。
具体证明可见题解,这里给出另外一个 julao 的解法:
- 假定字符串中一共有 种不同的字符,那么 上必然包含了全部字符(且互不相等)
- 移动到 上同理,随后不断移动,证明周期性
C题 Palindrome Basis(完全背包)
任意一个正整数,都可以表示为若干个回文数之和,并存在多种方案(样例可见原题)。
有 组询问,每次给定一个正整数 ,求 的表示方案。
我们记 ,显然,我们可以先 枚举出所有范围内的回文数(总数为 左右),随后跑完全背包即可,复杂度 。
不过,普通完全背包的转移方式(先容量 j 后物品 i)会导致重复,所以我们必须得先 i 后 j,当枚举到物品 i 的时候, 就表示的是在仅使用前 个物品时数字 的表示方式,这样就可以做到不重复。
(本题原型是自然数拆分,也就是《算法竞赛进阶指南》上面背包章节的这一题:自然数拆分Lunatic版)
D题 Lost Arithmetic Progression(数学)
给定两个有限项等差数列 (给定首项,公差和项数),他们的公共项构成新数列 (显然, 也是一个等差数列)。
现在给定数列 ,问有多少符合要求的数列 ?(无穷则输出 -1)
,每组数据中,首项在 int 范围内,公差为 int 内正整数,项数在 内且大于 1
无解的情况,就是 C 并不属于 B 的一部分,这就直接判断了:
- 首项是否在 B 内
- C 的公差是不是 B 的公差的倍数
- C 的最大项是不是在 B 内
接下来就是枚举 的可能公差,外加它在 C 的左右还能延续多少。
-
枚举公差
新公差所构造出来的数列应该避免和 B 有其他交点。
我们记 C 公差为 dc,B 公差为 db,那么 db 将 dc 分成了 份。那么,我们必须保证 。
-
左右延伸
处理完了内部,我们记 C 的上下界分别为 CL,CR,那么左右之多延伸到 CL - DC, CR + DC 处,但如果这两个里面有一个不在 B 范围内,就可以无穷枚举下去(无穷解),反之则有限。
这个 D 就是这样一个纯数学加分类讨论,每组数据的复杂度为 。
__EOF__

本文链接:https://www.cnblogs.com/cyhforlight/p/16212755.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App