P11363 做题记录
P11363 做题记录
一句话题意:没法一句话,见题面
从简单情况入手考虑这道题。记点 \(i\) 的度为 \(\text{deg}_i\)。
定义 I 一个点拥有大于等于三个相邻边为分叉结构,拥有小于等于两个相邻边为链结构,把分叉结构和链结构统称为分结构。
当 \(k = 1\) 时,你会发现只需要对同一点的边全排列即可。注意到如果你通过边 \(u\) 走到该点,\(u\) 是不能动的,于是这一点的方案数就为 \((\text{deg}_i -1)!\)。将所有点的方案数相乘即可。同时还可以发现这些相邻边在生成树上构成了一条链。
命题 I 一个点出发生成的树的个数是 \(\prod (\text{deg}_i-1)!\)。
命题 I-a 与同一点相接的边在生成树上构成了一条链。
考虑 \(k=2\) 的情况。这个时候我们要考虑去重。考虑每个分结构的情况,发现如果两个起始边生成了同一棵树,那么遍历顺序中的每个点的分结构,它生成的链开头和结尾固定。只有从指定的边走过来,它才能构成同一棵树。此时,这个点的方案数就变成了 \((\text{deg}_i -2)!\)。
命题 II 若两条起始边生成同一棵树,那么它们遍历顺序中的每个点分结构生成的链,开头和结尾固定。遍历顺序中的点的方案数为 \((\text{deg}_i -2)!\)。
考虑 \(k \ge 3\) 的情况。如果大于等于三条起始边生成同一棵树,那么它们遍历顺序的每个点都只能是链结构,不能是分叉结构。当为分叉结构时我们钦定了大于等于三个开头和结尾,这是不切实的。
命题 II-a 若大于等于三条起始边生成同一棵树,它们的遍历顺序的每个点都只能是链结构,即这大于等于三条边在原树中在同一条链上。
总结一下两种情况。我们发现,若大于等于两条边生成同一棵树,那么这些边都在同一条、唯一一条链上(两条边显然在同一条链上)。而且,链上的每个点的方案为 \((\text{deg}_i-2)!\)(根据命题 II)。
命题 II-b 若大于等于两条边生成同一棵树,那么这些边都在同一条、唯一一条链上。在链上的每个点方案为 \((\text{deg}_i-2)!\),其余为 \((\text{deg}_i-1)!\)。
定义 II 定义一个边集的生成链为所在的同一条、唯一一条链(如果存在)。
定义 III 定义 \(F_S=\bigcap \limits _{t\in S} A_t\)。
考虑容斥。根据容斥原理,答案为:
接下来我们就可以分析一下 \(F_{S}\)。由于 \((\text{deg}_i-2)!=\dfrac{(\text{deg}_i-1)!}{\text{deg}_i-1}\)。那么 \(F_S\) 就可以表示为:
结合 \(F_S\) 的式子和答案式子,可以定义:
定义 IV 定义 \(G_S\) 为:
\[G_S = (-1)^{\left|S\right|-1}\prod_{x \in S 的生成链点集} \dfrac{1}{\text{deg}_x-1} \]定义 V 定义答案为:
\[\prod (\text{deg}_i-1)!\cdot\sum\limits_{S\subseteq \{1,2,3,\ldots,n-1\}} G_s \]
发现边集的性质较少,情况数多。而生成链的情况数少,性质也多。于是我们考虑依照生成链进行统计。
由于两条边才能构成一条生成链,因此我们修改一下定义 V 的式子为:
根据修改后的答案式子,我们定义:
定义 VI 定义一个生成链的权值为:
\[(-1)^t\prod_{x\in V}\dfrac{1}{\text{deg}_x-1} \]其中 \(t\) 代表生成链为这个生成链的边集的大小之和。
定义 VII 定义 \(f_i\) 表示以 \(i\) 或 \(i\) 的父亲为深度最小点,以 \(i\) 为根的子树内的点为深度最深的点的链的的生成链,的权值之和。
根据定义 VII 可以写出下列表达式:
最后,在统计答案时,将所有链拼起来即可。
注意统计不拼起来的情况,即单条链的情况,可以发现,当 \((u,fa_u)\) 为起始边时,接上 \(v\) 的单条链只需要乘上 \(-1\) 即可。
未尽事宜请详询代码。
On 2025.1.22

浙公网安备 33010602011771号