Warning: session_start(): open(/tmp/sess_1e8ffbb1cb634088d5d3cf3921dcd027, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239

Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/actions.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/lib/tpl/dokuwiki/main.php on line 12
2022-2023:teams:kunkunkun:2022-nowcoder-3 [CVBB ACM Team]

用户工具

站点工具


2022-2023:teams:kunkunkun:2022-nowcoder-3

2022 牛客暑期多校训练营3

D

给定一棵树和一个起点,1号节点为终点,随机选其中K条边变成指向终点的单向边,在树上随机游走,求到达终点的期望步数。

不考虑选单向边,设 $f_x$ 为从 $x$ 走到其父亲的期望步数,则有 $f_x=\dfrac{1+\sum_v (1+f_v+f_x)}{d(x)}$,化简可得$f_x=d(x)+\sum_vf_v=2size(x)-1 $,其中 $size(x)$ 为 $x$ 的子树大小。
设出发点 $s$,其到 $1$ 的路径 $L$ 为 $s,v_k,\cdots,v_1,1$,则答案 $ans=f_s+f_{v_k}+\cdots+f_{v_1}$
考虑单向边 (v,u) 带来的影响,当该边到 $L$ 的路径上没有单项边时会对答案产生贡献,设路径长度为 $len$, $L$ 与该路径交点到 $1$ 的路径长度为 $L^\prime$,则对答案的贡献为 $$ -\dfrac{2*size(v)*\sum_{i=0}^{L^\prime-1}C_{n-1-len-i}^{K-1}}{C_{n-1}^{K-1}} $$ 预处理前缀和,时间复杂度 $O(n)$

2022-2023/teams/kunkunkun/2022-nowcoder-3.1659247812.txt.gz · 最后更改: 2022/07/31 14:10 由 sd_ltt