一种贪心

我这个贪心做过(2)遍了,但是不太记得了。
这个问题:有一颗树。
你需要求出一个答案排列。
权值和这个排列有关。
要求一个点必须在它的父亲后面。
求最优的排列。
维护一个并查集。
考虑我们把两个操作序列合并。
操作序列的最优顺序是个全序关系。
我们维护一个堆,每次取出最优的块,把它和父亲的块合并,表示“选了父亲就要选当前点”。
把所有点合并成一个的连通块,我们就求出了方案。
对于HNOI2018 排列,直接执行上面的贪心即可。
在合并的时候可以顺便统计答案。
把前面的块(a)和后面的块(b)合并时,可以统计后面块的答案增量。
对于 集训队作业2018 三角形,我们需要求出一个子树的操作序列。
使用一个链表即可在(O(1))的时间内连接两个操作序列,进而求出答案。
求出子树的答案线段树合并即可。
对于模拟赛 某题,还需要推一下公式才能使用这个贪心。

原文地址:https://www.cnblogs.com/ctmlpfs/p/13932227.html