NOI2020 命运

考场上挂分的题。。。

题目链接

由于 \(u_i,v_i\) 满足祖先关系,所以在 \(v_i\) 处记 \(d_x\) 表示 \(x\) 往上的最大深度。

\(f_{u,x}\) 表示以 \(u\) 为根的子树,当前没有被满足的链的深度最大值是 \(x\) 的方案数,那么转移有:

  1. 边被割去,直接转移,整体乘以 \(y\)
  2. 边未被割去,那么转移有两个。

于是得到:

\[f_{u,x}=(\sum f_{v,k}[k\le x]+(\sum f_{v,k}))\times f_{u,x}+(\sum f_{u,k}[k<x])\times f_{v,x} \]

答案是 \(f_{1,0}\)

用线段树合并维护 \(f\) 数组,每个区间维护其和,暴力合并至底部,沿途维护 dp 值即可。

复杂度为 \(\mathcal O(n\log n)\)

posted @ 2020-09-11 19:10  Soulist  阅读(136)  评论(0)    收藏  举报