可以先穷举那个是管理者,然后就发现其实就是求每个子树选尽可能多的人,使薪水和小于m这显然是从小往大选,可以用启发式合并但是用主席树写的更简单一点吧,dfs序之后每课线段树不仅维护出现出现个数,然后在维护一个区间和(未离散化之前的)然后类似查找第k大就可以解决了 type node=record po,next:longint; end; link=record l,r,s:longint; sum:int64; end; ..*] of link; v,a,b,c,e,sa,rank,h,p:.