题解 P8143【[JRKSJ R4] Stirling】

$\text{Link}$

题意

定义 $n$ 阶排列 $p$ 的生成图为对 $\forall i\in[1,n]$ 连接 $(i,p_i)$ 的无向图。

求有几个 $n$ 阶排列的生成图有偶数个环。

$n\le 10^6$。

思路

现在的官方题解做法是我提供的,之前是转化成逆序对后解释的。

$n=1$ 的情况平凡,答案为 $0$。

排列的生成图一定是由若干环组成的,证明:每个点的入度与出度都为 $1$,点数和边数都是 $n$,考虑一个连通子图,设它的大小为 $s$,其中有 $s+k$ 条边,若 $k>0$,则至少有一个点入度大于 $1$;若 $k<0$,必然有其它连通块 $k>0$。所以 $k$ 必然等于 $0$,也就是说边数等于点数。此时有两种形态:单一的环或基环树,基环树中必然有一点有 $2$ 入度同样矛盾,证毕。

考虑交换 $p_1$ 和 $p_2$,断开 $(1,p_1)$ 和 $(2,p_2)$ 并连接 $(1,p_2)$ 和 $(2,p_1)$,若它们在一个环中,则断开会把环展开为两条链,连接会把它们修复为两个环;反之,断开会把两个环展开为两条链,连接会把它们组成一个环。

综上,交换 $p_1$ 和 $p_2$ 会改变环数奇偶性,也就是说,生成图有偶数个环的 $n$ 阶排列与生成图有奇数个环的 $n$ 阶排列构成双射,答案为 $\dfrac{n!}2$。

时间复杂度 $\Theta(n)$。

再见 qwq~

posted @ 2022-02-15 18:59  ffffyc  阅读(35)  评论(0)    收藏  举报  来源