zoukankan      html  css  js  c++  java
  • 一种贪心

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

  • 相关阅读:
    java中 == 与equals 的区别
    java中的多线程 // 基础
    MySQL-锁机制
    将博客搬至CSDN
    MySQL-事务
    MySQL-存储过程
    MySQL-触发器
    MySQL-视图
    Redis设置Auth认证保护
    PHP目前常见的五大运行模式
  • 原文地址:https://www.cnblogs.com/ctmlpfs/p/13932227.html
Copyright © 2011-2022 走看看