闲话 23.3.29
闲话
好 今天题目到现在才改完
T1 是个 dp 不动转贪心题
T2 是提交答案的构造 但可以随机化半小时出解
所以今天真的放了 INTERNET YAMERO
感觉机房的喇叭放出来就很有感觉呢(
确实好听(
所以今天闲话先水一下!
模拟赛:
\/\/\/\/\/\/\/\/
T3
若一个长度为 的合法串中 0
的个数为 ,则我们知道这串对答案的贡献是 :若 ,则由于循环位移产生的 个新串总是不同的;反之串一定是由 个相同子串拼成的,这可以由归纳法的思想看出。
打表可以发现,若原串中全是 ?
,则答案为 。我们希望证明的是,对含有相同个数的 0
的所有串来说,合法串在循环同构意义下是唯一的。
设确定的合法串中 0
的个数为 ,1
的个数为 。我们首先将 除以 ,这样我们只讨论一个循环节,并保证 。对一个串,考虑将 0
赋 的权值,1
赋 的权值。设单个子串的权值是其中字符权值之和。对整个串来说,权值是 ,并且对任意长度为 的子串,子串权值的和都为 。然后考虑单个子串的权值。
由于我们只讨论合法串,因此这 个长度为 的循环子串中 0
的个数差值为 。设 0
的个数只有 和 两种可能,并设含有 个 0
的子串数是 。
首先考虑 的情况,我们知道这时权值为 。这值显然为 ,因为括号里两个都是 0
的总贡献次数。
反之我们知道 0
的贡献次数为 ,也就是 。由于 ,则 。这样两种子串的权值要么是 ,要么是 。
因此我们知道,任意合法串的子串的权值 。
我们设 为合法串前 个字符的权值之和,则合法串的子串 的权值就是 。因此任意合法串的子串的权值就是 等价于 ,即前缀和的极差 。
我们枚举极差对应的前缀和数组的值域,设是 。可以知道,这样的范围总能唯一地对应一个前缀和数组,进而根据双射唯一地对应一个串。这也证明了上面的唯一性。数组可以贪心地构造,由于前一位加上 和 总只有其中一个结果在范围内。因此只需要枚举 ,每次重新得到一个字符串,考虑这个串有多少个循环移位可以和给定的串完全匹配。
这是经典问题,可以用多项式优化到 单次,总 。
进一步考虑性质,我们不妨先构造 ,随后考虑 的过程。对每个位置 而言,其前缀和在模 意义下是 。由于 , 取遍 的每个值。这样我们在移动时,每次只会有前缀和最大(即为 )的位置变成前缀和最低(即为 )的位置,剩下的前缀和值相对大小不变。投射到差分上,也就是这个位置和下一个位置的 01 性取反。所以我们只需要每次翻转 个位置,并维护是否存在匹配。
这自然可以 单次,总 。
以下是博客签名,与正文无关。
请按如下方式引用此页:
本文作者 joke3579,原文链接:https://www.cnblogs.com/joke3579/p/chitchat230329.html。
遵循 CC BY-NC-SA 4.0 协议。
请读者尽量不要在评论区发布与博客内文完全无关的评论,视情况可能删除。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App