[FJOI2018]领导集团问题

题意

给定带点权树,求最大的集合使得,集合内若两点为祖孙关系,孙子权值$le $祖先权值

做法一

(f_{u,i})(u)子树内选择(i)个点,最小值最大是多少,转移显然

考虑对每个点维护一个可重集(S_u),降序,第(i)个点为子树内选择(i)个点,最小值的最大可能值
合并两个子树(S_{k_1},S_{k_2}),直接合并集合即可

考虑将(u)加入所有子树并起来的集合
若原集合为({w_1,w_2,cdots,w_{m}})(u)可以插入(w_k)之后,充要条件为(w_ule w_k)
考虑(u)插入或不插,若插入插在最优的地方
({w_1,w_2,cdots,w_{k},w_{k+1},cdots ,w_m})
({w_1,w_2,cdots,w_{k},w_u})
我们知道有(w_{k+1}<w_u),则最优的情况是将集合替换为
({w_1,w_2,cdots,w_k,w_u,cdots,w_m})

直接启发式合并(O(nlog^2n))

做法二

离散化权值
(f_{u,i})(u)子树内最小值(ge i)时选择的最大点数
用线段树维护差分,由于每次修改之跟(w_u)有关,子树可以直接线段树合并

原文地址:https://www.cnblogs.com/Grice/p/13065739.html