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

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

  • 相关阅读:
    进制转换
    客户信息管理系统
    ORACLE PL/SQL编程
    Oracle性能优化
    Django-admin
    PyCharm激活
    Java容器源码攻坚战--第一战:Iterator
    Java总结之映射家族--Map概览
    Java总结之容器家族--Collection
    2.安卓基础之Activity启动方式
  • 原文地址:https://www.cnblogs.com/ctmlpfs/p/13932227.html
Copyright © 2011-2022 走看看