LOJ3397 春天,在积雪下结一成形,抽枝发芽
计数不包含非平凡值域连续段的 \(n\) 元排列个数,对 \(1 \dots N\) 分别求。
根据析合树的知识,排列分成几类:
- \(1\) 元
- 根是合点,有两个以上孩子(有两种顺序)
- 根是析点,有四个以上孩子
其中情况 3 包含了答案。
设 \(4\) 元以上答案的 OGF 是 \(F(x)\),\(n \ge 1\) 元排列的 OGF 是 \(P(x)\)。
则有:
\[P = x + \frac{2P^2}{1+P} + F(P)
\]
其中 2 情况用容斥计算:每段给一个 \(-1\) 的系数,这样每种分段方式的贡献都是 \(1\)。
化成 \(P\) 的复合逆的形式:
\[P - F(P) - \frac{2P^2}{1-P} = x
\]
所以 \(H(x) = x - F(x) - \dfrac{2x^2}{1-x}\) 是 \(P\) 的复合逆。
所以只要求出 \(P\) 的复合逆 \(G\) 就能求 \(F(x)\)。
而 \(P\) 满足 \(x(xP)' = P - x\),即 \(x(P(x) - xP'(x)) = P(x) - x\)
带入 \(x = G\) 得
\[xGG' - G^2 = (x-G)G'
\]
注意到 \(G(F) = x, (G(F))' = G'(F)F' = 1, G'(F) = \dfrac{1}{F'}\)。
两边提取 \([x^n]\) 项分治 FFT 即可。