给定一棵$N$个节点的树,有$Q$次操作
- $1\space v\space$ 给定一个点$v$和一个权值$d$,等概率地选择一个点$r$,对每一个点$u$,若$v$在$u$到$r$的路径上,则$u$的权值加上$d$ (权值一开始为$0$)
- $2\space v$ 查询vv的权值期望,对$998244353$取模 $1\leqslant N,Q\leqslant 150000$
首先点自己的期望$+1$。其次每个子树里的点都会$n-siz[x]$
考虑每次维护重儿子和外子树,即每次维护到的都是$fa[top[x]]$,而$fa[top[x]]$决定了所有轻儿子的贡献。
当查询的时候
- 首先是自己再树链剖分的值。
- 其次每次跳重链,显然如果自己是轻儿子,贡献就是$fa[top[x]]\times (n-siz[top[x]])$
代码
1 |
|