首先将权值离散化。
不难想到设 fu,i 表示以 u 为根的子树内,最小值为 i 的最大集合大小(不一定要选 u)。
特别地,若集合为空,i=n+1。
那么对于 u 和其儿子 v,容易合并状态 f′u,i=max[n+1maxj=i(fu,i+fv,j),n+1maxj=i(fu,j+fv,i)] 线段树合并维护即可。
代码:
1 |
|
首先将权值离散化。
不难想到设 fu,i 表示以 u 为根的子树内,最小值为 i 的最大集合大小(不一定要选 u)。
特别地,若集合为空,i=n+1。
那么对于 u 和其儿子 v,容易合并状态 f′u,i=max[n+1maxj=i(fu,i+fv,j),n+1maxj=i(fu,j+fv,i)] 线段树合并维护即可。
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment