闲话 24.7.12
闲话
????这luogu编译器怎么回事
在本地和 at 上都能过编,在luogu上就过不了?
xdm有遇到过这种事情的吗
解决了,是 always_inline 让他编译时间过长
删掉就好了
但是 T 掉了。
推歌:朝死暮生 by 北山薇 et al. feat. 洛天依AI
补题
对一棵 \(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}\) 构造的生成函数翻译,自然有
但这题怎么会让你这么轻易完成 analyse 呢?让我们先看看 \(\text{typ} = 0\)……
我们首先考察可以作为权值为 \(2\) 的点的子树的组合类对应的 egf,容易知道这就是 \(F_0 + F_1\)。那么仍然是无顺序排列,我们知道答案就是
还挺简单的!就是公式的排版有点难看(
施二元拉格朗日反演知道这就是
可以贡献出 \(x^i y^j\) 项的只可能是 \((x + y)^{i + j}\)。所以知道
因此原式
可以 \(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\),我们知道答案就是
受 \(\text{typ} = 0\) 的启发,我们仍然希望使用多元拉格朗日反演来击破复合的形式。然而目前的结构有求导,无法立即使用拉反。因此我们需要找到 \(\partial F_k \to F_0, F_1\) 的具体关系。首先对方程组对 \(x\) 求偏导,得到
得到
真行啊这?这其实引发了我的一个疑问,我们能在多严格的限制条件下保证存在这样一个关系,或者断言它不存在?这问题暂且搁置,目前的处理方法还比较依赖某些看似独立的性质。
对 \(y\) 求偏导得到了相同的结构,我们需要计算的就是
现在就能做拉反了。拉反完得到
现在要考虑减元了。减元的进行,大多时候要么是直接找到一个元的系数,要么是换元后找到一个元的系数。注意到这式子是关于 \(x, y\) 完全对称的,这也会让我们找到系数的难度增加——因为提取哪个元完全是一样的。那么我们不妨通过换元,直接破坏掉这一性质。
启发我们的是我们要提取的系数,我们如果做换元 \(u = xy, v = y\),那么要提取的就是 \(u^nv^0\) 次项。这应当会大大简化减元的过程。我们目前的目标是确定形式 laurent 级数(占位元为 \(v\))的常数项。于是有
这里考虑最后一个求和都枚举了些什么。我们需要的是 \([v^0](u/v + v)^i\),这也就要求了 \(i = 2k\),这样就有
得到
可以 \(O(\sqrt n \log n)\),这是一个 30 阶整式递推(如果我没记错的话)。
常数太大,摆了。本机能跑 1.7s,但本机速度是评测机的 三 倍。
不是?大家的递推式怎么都那么短啊?
我拿 ode 自动机只能找到 30 阶的递推,这肯定爆了啊!
难道只能高消吗?
以下是博客签名,与正文无关。
请按如下方式引用此页:
本文作者 joke3579,原文链接:https://www.cnblogs.com/joke3579/p/-/chitchat240712。
遵循 CC BY-NC-SA 4.0 协议。
请读者尽量不要在评论区发布与博客内文完全无关的评论,视情况可能删除。