闲话 24.7.12

闲话

????这luogu编译器怎么回事
在本地和 at 上都能过编,在luogu上就过不了?
xdm有遇到过这种事情的吗

解决了,是 always_inline 让他编译时间过长
删掉就好了
但是 T 掉了。

推歌:朝死暮生 by 北山薇 et al. feat. 洛天依AI

补题

P10324

对一棵 \(2n + 1\) 个点的有标号树,称它是好的,当且仅当树上每个点具有一个 \(\{0, 1, 2\}\) 中的权值,其中恰有 \(1\) 个权值为 \(2\) 的点,\(n\) 个权值为 \(0,1\) 的点,并使得不存在一条边的两个端点权值相同。

给定 \(n\),对不同的 \(\text{typ}\),您需要回答不同的问题:

\(\text{typ} = 0\):计数 \(2n + 1\) 个点的好树。
\(\text{typ} = 1\):对每棵好树,我们需要在删除权值为 \(2\) 的点以及对应边后,在每个极大联通子树内选择恰好一个点做标记。计数做标记的可能方案。

这个题还算好 specify 的,所以写一下(

题面经过转化了。首先因为权值为 \(2\) 的点只有一个,我们可以将它视为树根,并将连在它上面的点视作对应子树的根。这样子问题(一棵极大联通子树)就变为有标号有根树了,而这是较为简单的。称一棵有标号有根树是好的,当且仅当树上每个点具有一个 \(\{0, 1\}\) 中的权值,并使得不存在一条边的两个端点权值相同。令 \([x^ny^m/n!m!]F_k(x, y)\) 计数根的权值为 \(k\),由 \(n\) 个权值为 \(0\) 的点、\(m\) 个权值为 \(1\) 的点组成的有标号有根树。那么根据有标号 \(\text{Set}\) 构造的生成函数翻译,自然有

\[\left\{\begin{aligned} F_0 = x\exp F_1 \\ F_1 = y\exp F_0 \end{aligned}\right.\]

但这题怎么会让你这么轻易完成 analyse 呢?让我们先看看 \(\text{typ} = 1\)……

我们首先考察可以作为权值为 \(2\) 的点的子树的组合类对应的 egf,容易知道这就是 \(F_0 + F_1\)。那么仍然是无顺序排列,我们知道答案就是

\[\left[\frac{x^ny^n}{n!n!}\right] \exp (F_0 + F_1) \]

还挺简单的!就是公式的排版有点难看(

二元拉格朗日反演知道这就是

\[\begin{aligned} & \left[\frac{x^ny^n}{n!n!}\right] e^{x + y} e^{nx} e^{ny} \left\lvert \begin{matrix} 1 & -x \\ - y & 1 \end{matrix} \right\rvert \\ = \ &\left[\frac{x^ny^n}{n!n!}\right] e^{(n + 1)(x + y)}(1-xy) \end{aligned}\]

可以贡献出 \(x^i y^j\) 项的只可能是 \((x + y)^{i + j}\)。所以知道

\[[x^my^m] e^{(n + 1)(x + y)} = [x^my^m] (n + 1)^{2m} \dfrac{(x + y)^{2m}}{(2m)!} = \binom{2m}{m}\dfrac{(n + 1)^{2m}}{(2m)!} \]

因此原式

\[\begin{aligned} \\ = \ & (n!)^2 \left(\binom{2n}{n} \frac{(n + 1)^{2n}}{(2n)!} - \binom{2n - 2}{n - 1} \frac{(n + 1)^{2n - 2}}{(2n - 2)!}\right) \\ = \ & (n + 1)^{2n} - n^2(n + 1)^{2n - 2} \\ = \ & (n + 1)^{2n - 2}(2n + 1) \end{aligned}\]

可以 \(O(\log n)\)。还挺简单的!

但这题怎么会让你这么轻易完成 analyse 呢?让我们再看看 \(\text{typ} = 1\)……

这是什么?我们还是需要每个子树的组合类对应的 egf \(F_0 + F_1\),但这次,这个函数里每个 \(x^ny^m\) 项的贡献要乘以 \(n + m\)。也就是,我们需要实现一个算子,使得 \(x^ny^m \rightarrow (n + m)x^ny^m\),自然想到了求导。因此我们只需要设计 \(x\dfrac{\partial}{\partial x} + y\dfrac{\partial}{\partial y}\),就可以分别取得两个占位元的指数了。因此记 \(\dfrac{\partial}{\partial x}\)\(\partial_x\),我们知道答案就是

\[\left[\frac{x^ny^n}{n!n!}\right] e^{(x\partial_x + y\partial_y)(F_0 + F_1)} \]

\(\text{typ} = 0\) 的启发,我们仍然希望使用多元拉格朗日反演来击破复合的形式。然而目前的结构有求导,无法立即使用拉反。因此我们需要找到 \(\partial F_k \to F_0, F_1\) 的具体关系。首先对方程组对 \(x\) 求偏导,得到

\[\partial_x F_0 = e^{F_1} + x \left(\partial_x F_1\right)e^{F1} = e^{F_1} + \left(\partial_x F_1\right) F_0 \]

\[\partial_x F_1 = y (\partial_y F_0) e^{F_0} = F_1 (\partial_y F_0) \]

得到

\[x\partial_x (F_0 + F_1) = \frac{F_0(1 + F_1)}{1 - F_0 F_1} \]

真行啊这?这其实引发了我的一个疑问,我们能在多严格的限制条件下保证存在这样一个关系,或者断言它不存在?这问题暂且搁置,目前的处理方法还比较依赖某些看似独立的性质。

\(y\) 求偏导得到了相同的结构,我们需要计算的就是

\[\left[\frac{x^ny^n}{n!n!}\right] \exp \left( \frac{F_0 + F_1 + 2F_0F_1}{1 - F_0F_1}\right) \]

现在就能做拉反了。拉反完得到

\[\begin{aligned} \\ = \ & \left[\frac{x^ny^n}{n!n!}\right] \exp \left( \frac{x + y + 2xy}{1 - xy}\right) e^{n(x + y)} (1 - xy) \end{aligned}\]

现在要考虑减元了。减元的进行,大多时候要么是直接找到一个元的系数,要么是换元后找到一个元的系数。注意到这式子是关于 \(x, y\) 完全对称的,这也会让我们找到系数的难度增加——因为提取哪个元完全是一样的。那么我们不妨通过换元,直接破坏掉这一性质。

启发我们的是我们要提取的系数,我们如果做换元 \(u = xy, v = y\),那么要提取的就是 \(u^nv^0\) 次项。这应当会大大简化减元的过程。我们目前的目标是确定形式 laurent 级数(占位元为 \(v\))的常数项。于是有

\[\begin{aligned} \\ = \ & \left[\frac{u^nv^0}{n!n!}\right] \exp \left( \frac{u/v + v + 2u}{1 - u}\right) e^{n(u/v + v)} (1 - u) \\ = \ & (n!)^2\left[u^nv^0\right] (1 - u) \exp \left( \frac{u/v + v + 2u}{1 - u} + n(u/v + v)\right) \\ = \ & (n!)^2\left[u^nv^0\right] (1 - u) \exp \left\{(u/v + v)\left(\frac{1}{1-u} + n\right) + \frac{2u}{1-u}\right\} \\ = \ & (n!)^2\left[u^nv^0\right] (1 - u) \exp \left(\frac{2u}{1-u}\right) \sum_{i\ge 0} \left(n + (1 - u)^{-1}\right)^i \frac{(u/v + v)^i}{i!} \end{aligned}\]

这里考虑最后一个求和都枚举了些什么。我们需要的是 \([v^0](u/v + v)^i\),这也就要求了 \(i = 2k\),这样就有

\[[v^0](u/v + v)^i = [v^0](u/v + v)^{2k} = \binom{2k}{k} u^k \]

得到

\[\begin{aligned} \\ = \ & (n!)^2\left[u^n\right] (1 - u) \exp \left(\frac{2u}{1-u}\right) \sum_{k\ge 0} \left(n + (1 - u)^{-1}\right)^{2k} \frac{1}{(2k)!} \binom{2k}{k} u^k \\ = \ & (n!)^2\left[u^n\right] (1 - u) \exp \left(\frac{2u}{1-u}\right) \sum_{k\ge 0} \frac{\left(n + (1 - u)^{-1}\right)^{2k}}{(k!)^2} u^k \\ = \ & (n!)^2\left[u^n\right] (1 - u) \exp \left(\frac{2u}{1-u}\right) {}_1F_2 \left( \left.\begin{matrix} 1\\1, 1 \end{matrix}\right\rvert \frac{u\left(n(1-u) + 1\right)^{2}}{(1-u)^2}\right) \end{aligned}\]

可以 \(O(\sqrt n \log n)\),这是一个 30 阶整式递推(如果我没记错的话)。

常数太大,摆了。本机能跑 1.7s,但本机速度是评测机的 倍。

不是?大家的递推式怎么都那么短啊?
我拿 ode 自动机只能找到 30 阶的递推,这肯定爆了啊!
难道只能高消吗?

posted @ 2024-07-12 16:16  joke3579  阅读(50)  评论(0编辑  收藏  举报