考场上挂分的题。。。
题目链接
由于 (u_i,v_i) 满足祖先关系,所以在 (v_i) 处记 (d_x) 表示 (x) 往上的最大深度。
设 (f_{u,x}) 表示以 (u) 为根的子树,当前没有被满足的链的深度最大值是 (x) 的方案数,那么转移有:
- 边被割去,直接转移,整体乘以 (y)
- 边未被割去,那么转移有两个。
于是得到:
[f_{u,x}=(sum f_{v,k}[kle x]+(sum f_{v,k})) imes f_{u,x}+(sum f_{u,k}[k<x]) imes f_{v,x}
]
答案是 (f_{1,0})
用线段树合并维护 (f) 数组,每个区间维护其和,暴力合并至底部,沿途维护 dp 值即可。
复杂度为 (mathcal O(nlog n))