专栏文章

Madoka 酱亲亲! | 【解题报告】P11431 [COCI 2024/2025 #2] 差异 / Različitost

P11431题解参与者 5已保存评论 4

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
4 条
当前快照
1 份
快照标识符
@miqq5g9g
此快照首次捕获于
2025/12/04 08:55
3 个月前
此快照最后确认于
2025/12/04 08:55
3 个月前
查看原文
拆位是平凡的。接下来只需要考虑 0101 序列上的问题。
显然 ci=aibic_i=a_i\oplus b_i 这个序列的循环节长度为 lcm(n,m)\operatorname{lcm}(n,m)。对于长度为 lcm(n,m)\operatorname{lcm}(n,m) 的整段是不难拆贡献后计算的,接下来只需要考虑长度 <lcm\lt \operatorname{lcm} 的散段。
经典结论就是 x(x+n)modmx\to (x+n)\bmod m 连边会形成若干个环,每个环长为 m/gcd(n,m)m/\gcd(n,m)(证明留作练习)。然后注意到每一个环的含义是:aia_i 第一次匹配的是 bib_i,第二次是 b(i+n)modmb_{(i+n)\bmod m},依此类推。那么直接计算它能取到几次,然后利用环上前缀和计算即可。
细节较多,代码实现较为繁琐。精细实现的话,时间复杂度 Θ((n+m)logV)\Theta((n+m)\log V)
Madoka 酱可爱,亲亲 Madoka 酱!

评论

4 条评论,欢迎与作者交流。

正在加载评论...