P11592 [NordicOI 2024] Chair Game

先直接从 IMO2005 预选赛 C7 开始看。


问题:

给定一个长度为 n 的序列 a,保证 n(ai)。证明存在两个排列 στ,使得 σi+τiai(modn)

解:

若存在一个序列 a 和其的一组解 (σ,τ),同时存在一个序列 b,与 a恰好两个位置值不同。考虑通过 a(σ,τ) 得出 b 的一组解 (σ,τ)。如果能够完成这个问题,则证明了原问题。

记两个序列不相同的位置为 i1,i2,对于 2k<nik+1唯一满足 σik1+τik+1bik 的位置。

引理:记 (p,q) 是最小的满足 ip=iq 的二元组,则一定有 p=1p=2

于是我们得到了一组 b 的解 (σ,τ)

σik={σiq1k=1σik12k<q

τik={τi1k=1p=2τi2k=1p=1τik+12k<q

j{i1iq1},σj=σj,τj=τj

对于 ji1σj+τjbj 都是根据定义得到的,而 σj+τj=n(n+1)0bj(modn),所以 σi1+τi1bi1 自然成立。

对于引理的证明,假设 p>2,此时有:

k=pq1bikk=pq1σik1+τik+1σip1+σip+τiq1+τiq+k=p+1q2σik+τikbip+biq1σip1+σip+τiq1+τiq

因为 ip=iq,所以上式变成 biq1σip1+τiq1,也就是有 ip1=iq1,与 (p,q) 定义相左,所以假设不成立。

翻译自:IMO Shortlist 2005


回到原问题,那么就相当于现在要使 σi+siτi(modn),即 τiσisi(modn)

首先,n(si) 是有解的充要条件,充分性上面已经说过了。

必要性就是考虑最终答案序列 fi,从 i(i+fi1)modn+1 连边,最终一定要构成若干置换环,每个置换环内的 fi 之和一定是 n 的倍数。所以 n(si) 是必要的。

于是就变成上面的问题了。

构造的话考虑先随便弄出一组合法的 a,(σ,τ),然后一位一位调整,直接模拟上述过程即可。时间复杂度 O(Tn2)


感觉 MO 的思路比较奇怪,有没有什么符合 OI 思维的思路,或者说上面那个东西实际上做的是什么?

posted @   int_R  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2024-01-22 AT_arc170_d Triangle Card Game
2024-01-22 P10061 [SNOI2024] 矩阵
2024-01-22 P10060 [SNOI2024] 树 V 图
2024-01-22 AT_abc337_g Tree Inversion
点击右上角即可分享
微信分享提示