Hello World
蓝书数学
P4778 Counting swaps
容易想到找出置换。然后就不会了。猜了一下,以为一个大小为 \(x\) 的置换环的方案数为 \(\frac{x!}{2}\),因为我以为每一步都只能选了相邻的两个数进行交换。
实际上同一个环上任意两个位置都可以进行交换。交换之后,一个环会变成两个环。设 \(f_i\) 为大小为 \(i\) 的环的方案数,可以进行递推:
\[f_{i}=\sum_{j=1}^{\lfloor\frac{i}{2}\rfloor}k\binom{i-2}{j-1}f_{i-j}f_{j}
\]
其中 \(k\) 在 \(2j=i\) 时,为 \(\frac{n}{2}\),否则为 \(n\)。即当前交换的两点的选择方案数。