9.26 T2 树上竞技

树上竞技

对每条边单独考虑,对于边 $e$,它将整棵树分为了两个部分,不妨令其大小为 $sz$ 和 $n-sz$。

则这条边的贡献为:${\large\sum\limits_{i=1}^{m}}\min(i,m-i)\dbinom{sz}{i}\dbinom{n-sz}{m-i}$。

这样是无法通过的,考虑优化。

不妨令 $k=\lfloor\dfrac{m-1}{2}\rfloor$,$mid=\dfrac{m}{2}$。

则有 $f(s) = {\large\sum\limits_{i=1}^{k}}i\times\dbinom{s}{i}\dbinom{n-s}{m-i}$

当 $m$ 为奇数时,贡献为 $f(s)+f(n-s)$

当 $m$ 为偶数时,贡献为 $f(s)+f(n-s)+mid\dbinom{s}{mid}\dbinom{n-s}{mid}$。

考虑如何快速的求出 $f(s)$。

先转化一下:$f(s)=s\times{\large\sum\limits_{i=1}^{k}}\dbinom{s-1}{i-1}\dbinom{n-s}{m-i}$

不妨设函数 $g(s)=\dfrac{f(s)}{s}$,就是后面一部分。

考虑组合意义。

显然 $g(s)$ 表示的是 $n-1$ 个数中选 $m-1$ 个数,且前 $s-1$ 个数最多能选择 $k-1$ 个数的方案数。

可以通过递推高效的求出 $g(s)$。

易得 $g(s+1)=g(s)-\dbinom{s-1}{k-1}\dbinom{n-s-1}{m-k-1}$。

就是减去强制选第 $s$ 个数的情况。

时间复杂度:$\mathcal{O}(n)$

posted @ 2023-09-26 16:40  Pengzt  阅读(0)  评论(0编辑  收藏  举报  来源