【学习笔记】支配树

前言

萌新刚开始学图论入门,今天来学习一下支配树(灭绝树)这个东西。有问题请指出啊。

支配与支配点

在一张有向图 G 中,对于任意两个点 u, v,若从起点 s 出发到达顶点 v 的所有路径都需要经过顶点 u,则称顶点 u 支配顶点 vuv 的支配点)。特别地,每个顶点支配其自身。

另一种更形象的定义是,u 被删除后,s 无法到达 v,则称顶点 u 支配顶点 vuv 的支配点)。

很显然这两种定义是等价的。

支配树

对于非根节点 x,设距离 x 最近的支配点为 y,那么从 yx 连一条有向边。形成的树叫做支配树。

支配树最明显的性质:在支配树上,从 s 走向任意一点 u 所路过的所有点就是 u 的支配点。

树的支配树

对于一棵树来说,它本身就是自己的支配树。

DAG 的支配树

我们需要做的,是对于任意非根节点 u,找到它的最近支配点。

由于是 DAG,考虑先对其进行拓扑排序。接下来按照拓扑序建树。

我们假设考虑到节点 u,即拓扑序在 u 之前的节点已经建好了支配树。

我们找到所有存在边 vu 的节点 v,我们的任务变成了从 s 到达所有 v 中的必经点。这个时候会发现,如果我们找到所有 v 在支配树上的 LCA,这个点就是我们要求的 u 的最近支配点。这一点可以画个图理解。

LCA 可以用倍增求出。

注意,需要反向建边才能找到所有 vu

  • P2597 [ZJOI2012]灾难

    模板题。先拓扑,把所有生产者连向一个超级源点 s,然后建出支配树,输出 size 即可。

  • CF757F Team Rocket Rises Again

    先跑最短路,建出最短路图。由于最短路图是个 DAG,然后和上题一样即可。

一般有向图的支配树

先咕着。

posted @   Little09  阅读(379)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示