已完成今日 最小树形图 大学习。
给定有向图,求以 为根的内/外向树的最小边权和
在图中添加边 ,选到 则无解。
每条边优先指向边权最小的出边。如果成环,就会在之后反悔一条环边改为指向环外。
依次对所有点执行:找到最小出边。如果加上不是环,就加上。否则将整个环缩为一个新点,把所有环上点的出边减去该点环上的边,在合并起来作为新点的出边。
使用左偏树/启发式合并堆加打标记。
最小树形图缩环的过程中形成一颗重构树。
每个环建一个新点,环上点的父亲是新点,边权为该点最小出边的权值。
如果 是关键点, 相关的环可以断开指向 ,即 到 路径上的边可以不选。
树剖维护。