Codeforces 1726E - Almost Perfect
把排列的变换打出来找找规律,会发现对于合法的 ,置换后的 都很相似。
以下是截取的几个 时的合法情况。
1
2
3
4
5 [2,1,8,9,6,5,10,3,4,7] => [2,1,8,9,6,5,10,3,4,7]
[2,1,8,9,6,5,10,4,3,7] => [2,1,9,8,6,5,10,3,4,7]
[2,1,8,9,7,6,5,3,4,10] => [2,1,8,9,7,6,5,3,4,10]
[2,1,8,9,7,6,5,4,3,10] => [2,1,9,8,7,6,5,3,4,10]
[2,1,8,9,7,10,5,3,4,6] => [2,1,8,9,7,10,5,3,4,6]
于是我们把置换环画出来,会发现只有一元环、二元环和四元环,至于证明我是真不会。
先来看一、二元,就是这两种情况。
这个东西是非常能预处理的。设 代表排列有 个元素时的方案数,则 。
然后来处理四元环,四元环形如这个样子。
其中需要保证 。
我们考虑直接枚举四元环的个数 ,则我们需要在 之间选出 个数,剩下的那个 是为了保证 以后不会超过 的,方案数为 。
再把这些数两两组合成二元组,不妨直接任意排列,计相邻两项是二元组,方案数为 。
最后再把一、二元环的答案加回来。
综上,做完了。
- 标题: Codeforces 1726E - Almost Perfect
- 作者: Gavin
- 创建于 : 2026-02-26 11:38:00
- 更新于 : 2026-02-26 11:38:00
- 链接: https://gavin-blog.pages.dev/2026/codeforces-1726e-almost-perfect/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。