拉格朗日反演

拉格朗日反演

\(G(F(x)) = x\),即 \(F, G\) 互为复合逆且 \(F, G\) 的常数项为 \(0\),一次项不为 \(0\),若已知 \(F\),可以求得 \(G\) 的某一项:

\[[x ^ n] G(x) = \frac{1}{n}[x ^ {-1}](F(x)) ^ {-n} = \frac{1}{n}[x ^ {n - 1}]\left(\frac{x}{F(x)}\right) ^ n \]

凑出合适 \(F\) 的方法:

  • 减去 \([x ^ 0]F(x)\)
  • 构造 \(xF(x)\)

拓展形式:

\[[x ^ n]H(G(x)) = \frac{1}{n}[x ^ {-1}]H'(x)(F(x)) ^ {-n} \]

卡特兰数通项公式的一个拉反求法

我们知道卡特兰数的一个生成函数 \(C(x)\) 满足 \(C(x) = 1 + x C ^ 2(x)\)

\(F(x) = C(x) - 1\),有 \(F(x) = x(F(x) + 1) ^ 2 \Rightarrow x = \frac{F(x)}{(F(x) + 1) ^ 2}\),设 \(G(x) = \frac{x}{(x + 1) ^ 2}\),有 \(F, G\) 互为复合逆。

于是就有:

\[[x ^ n]F(x) = \frac{1}{n}[x ^ {n - 1}](x + 1) ^ {2n} = \frac{1}{n}{2n\choose n - 1} = \frac{1}{n + 1}{2n\choose n} \]

Petrozavodsk Summer 2021. Day 1. Kyoto U Contest - M. Multiple Parentheses

首先有一个暴力做法,设 \(F(x) = \sum\limits_{n = 0} ^ {\infty}[n\neq k] {{2n\choose n}\over n + 1}x ^n\),然后快速幂即可。

但是这题的数据范围是 \(10 ^ 6\),大部分多项式板子过不去。

我们知道卡特兰数的生成函数是 \(C(x) = \frac{1 - \sqrt{1 - 4x}}{2x}\),但是如果减去第 \(k\) 项会比较麻烦,所以枚举 \(N\) 个盒子里面出现大小为 \(2K\) 的盒子个数,然后容斥就好了。

现在要求 \([x ^ {M - Ki}](\frac{1 - \sqrt{1 - 4x}}{2x}) ^ {N - i}\),也就是要求 \([x ^ m]C ^ k(x)\)

\(C(x) = xC^2(x) + 1\),那么有 \(xC(x) = x ^ 2 C ^ 2(x) + x\),设 \(H(x) = xC(x)\),得到 \(H(x) = H ^ 2(x) + x \Rightarrow x = H(x) - H^2(x)\),设 \(G(x) = x - x ^ 2\),有 \(G(H(x)) = x\)

我们要求 \([x ^ m]C ^ k(x)\),即 \([x ^ {m + k}] H ^ k(x)\),对式子进行拓展的拉格朗日反演:

\[[x ^ {m + k}]H ^ k(x) = \frac{1}{m + k}(x ^ k)'[x ^ {m + k - 1}]\left(\frac{1}{1 - x}\right) ^ {m + k} = \frac{k}{m + k}[x ^ {m}]\left(\frac{1}{1 - x}\right) ^ {m + k} \]

右边是一个经典的生成函数 \(\frac{1}{(1 - x) ^ t} = \sum\limits_{n = 0} ^ {\infty} {n + t - 1\choose n} x ^ n\)

所以 \(\tau(m, k) = [x ^ m]C ^ k(x) = \frac{k}{m + k} {k + 2m - 1\choose m}\)

答案就是 \(\sum\limits_i (-1) ^ {i} (C_K) ^ i {N\choose i} \tau(M - Ki, N - i)\)

inline mint tau(int m, int k) {
	if (m == 0) return mint(1);
	return mint(k) * inv[m + k] * C(k + 2 * m - 1, m);
}
int n, m, k;
inline void solve() {
	cin >> n >> m >> k;
	Invtable(max(n, m) << 2);
	mint ans = 0, cof = 1;
	forn (i, 0, min(n, m / k)) {
		if (i & 1) ans -= C(n, i) * tau(m - k * i, n - i) * cof;
		else ans += C(n, i) * tau(m - k * i, n - i) * cof;
		cof *= C(k << 1, k) * inv[k + 1];
	}
	cout << ans.r << '\n';
}

ABC222H - Beautiful Binary Tree

\(f(n)\)\(n\) 次美丽二叉树的个数,\(g(n)\) 为根节点为 \(0\) 的满足其他条件的二叉树的个数,由于叶子节点必须为 \(1\),所以有边界条件 \(f(1) = 1, g(1) = 0\),由此得到:

\[f(n) = \sum\limits_{k = 1} ^ {n} f(k - 1) f(n - k) + f(k - 1)g(n - k) + g(k - 1) f(n - k) + g(k - 1)g(n - k)\\ g(n) = \sum\limits_{k = 1} ^ n f(k)f(n - k) \]

\(F(x) = \sum\limits_{n = 0} ^ {\infty} f(n)x ^ n, G(x) = \sum\limits_{n = 0} ^ {\infty} g(n)x ^ n\),有:

\[F(x) = 1 + xF^2(x) + 2xF(x)G(x) + xG^2(x) = 1 + x(F(x) + G(x)) ^ 2\\ G(x) = F ^ 2(x) - 1 \]

\(G(x)\) 带掉:

\[F(x) = 1 + x(F^2(x) + F(x) - 1) ^ 2 \]

于是得到:

\[x = \frac{F(x) - 1}{(F ^ 2(x) + F(x) - 1) ^ 2} \]

由于拉格朗日反演要求常数项为 \(0\),设 \(H(x) = F(x) - 1\),有 \(x = \frac{H(x)}{(H^2(x) + 3H(x) + 2) ^ 2}\),设 \(\phi(x) = \frac{x}{(x ^ 2 + 3x + 1)^2}\),根据拉格朗日反演,可以得到:

\[[x ^ n] H(x) = \frac{1}{n}[x ^ {n - 1}](x ^ 2 + 3x + 1) ^ {2n} \]

所以答案就是:

\[[n = 1] + \frac{1}{n}\sum\limits_{k = 0} ^ {\lfloor\frac{n - 1}{2}\rfloor}{2n\choose k}{2n - k\choose n - 1 - 2k} 3 ^ {n - 1 - 2k} \]


什么,你说怎么没有[WC2019]数树,这我哪会啊

posted @ 2026-01-12 17:18  AxDea  阅读(12)  评论(0)    收藏  举报