Codeforces Round #797 (Div. 3)
比赛链接
Codeforces Round #797 (Div. 3)
E.Price Maximization
本题有多组测试数据。
我们有 个礼物,而最终我们需要将所有的礼物两两包成 个包裏。
每一个礼物 都有其价值 ,而含有礼物 与礼物 的包裏的价值是 。
我们需要找出一个方案来使得所有包裏的价值之和最大,并求出这个最大值。
输入
输出
解题思路
双指针
结论:
证明:,其中 和 都要小于 , 整除 ,另外其他部分取决于 是否大于
利用上述结论,先求出 的整除部分之和,再求出 对 的余数,排序,现在问题转化为在序列 中找出最多的对数使得 ,其中更大的数一定要选,则可以采用双指针,固定更大的数,移动更小的数的指针
- 时间复杂度:
代码
F. Shifting String
给定一长为 的字符串 (下标从 开始) 与 的排列 。定义 。求最小的 使 。 组数据。
- 。
解题思路
置换群,KMP求最小循环节
先按置换群求出每个环形成的字符串,由于每个字符串可能会出现循环节,求出每个环的循环节长度的最小公倍数即为答案,所以本题关键在于求最小循环节,有如下 KMP 定理求解:
假设 长度为 ,如果存在循环节,则其长度为 ,另外有如下两条性质:
- 如果 可以被 整除,则 存在循环节,周期
- 否则,还需添加字母补全,需要补充的字母个数为 ,其中
- 时间复杂度:
代码
__EOF__

本文作者:acwing_zyy
本文链接:https://www.cnblogs.com/zyyun/p/16407685.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/zyyun/p/16407685.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
codeforces
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!