首页 > 其他分享 >圆方树

圆方树

时间:2024-07-15 21:40:22浏览次数:12  
标签:原图 连通 点双 圆点 割点 圆方树

一些概念

割点:无向图中,若删除点x及其连边,连通块变多,那么x为割点。

点双连通:若点对x和y,删除任意非x和非y节点后,x和y仍然联通,称x和y点双连通。

点双联通子图:无向图中的一个子图G,G中任意两点都是点双连通的,那么G为原图的一个点双连通子图。

点双联通分量:无向图中的极大点双联通子图称为点双联通分量(V-DCC)

tips:点双联通不具有传递性,边双连通具有传递性

性质

  • 1.无向图至少有三个点,才可能有割点(根据割点的定义)

  • 2.dfs搜索树中的根结点有两个及以上的子节点是,才可能是割点

  • 3.一个割点可能在多个点双中

正片

圆方树:将无向图转化为树形结构,解决"必经点"问题的数据结构

目标:构建一棵树,树上两点路径上的点都是原图的必经点

圆点:原无向图G中的点,仍然保留在圆方树中,称之为圆点

方点:将每一个点双连通分量新建一个方点

树边:每个方点向对应的点双内的圆点连边

下图为一棵圆方树的构建过程:
image

性质:

  • 1.圆方树中的总点数=原图点数n+点双个数tot,上限为\(2\times n-1\)

  • 2.圆点是被方点隔开的,一条边的两个端点一定是圆点和方点(所以显然这是一棵树)

  • 3.圆点的度数就是包含该点的点双个数

  • 4.圆方树删除点x后剩余节点的连通性与原图中删除x后的连通性等价

  • 5.原图中x到y的路径的必经点就是圆方树上x到y经过的圆点

  • 6.圆点为割点时才有超过一个儿子节点

标签:原图,连通,点双,圆点,割点,圆方树
From: https://www.cnblogs.com/wangwenhan/p/18304036

相关文章

  • 【算法学习】圆方树——处理仙人掌的利器
    圆方树大概分两种,一个是圆方树,一个是广义圆方树。圆方树这可以解决仙人掌上的问题。任意一条边至多只出现在一条简单回路的无向连通图称为仙人掌。很多题解将其作为无向图构建,本文将其构建为外向树,在这个问题中两种构建方式不会影响求解。构建方式记读入的图为原图,构建的......
  • 圆方树
    圆方树这里的圆方树指广义圆方树。对于一张\(n\)个点的无向图,其中包含\(k\)个点双,那么这张图建出的圆方树一共有\(n+k\)个点,其中前\(n\)个点为原图中的点,称为圆点,后\(k\)个点每个点代表一个点双,称为方点,每个点双与其中包含的点连边构成一个菊花,这\(k\)个菊花经由图......
  • 圆方树学习笔记
    圆方树学习笔记圆方树是优秀的图论算法,从仙人掌图向无向图扩展,利用割点和点双联通分量的性质,实现了图向树的转换。对仙人掌的处理:圆方树——处理仙人掌的利器而且实现十分简单算法思路前置知识割点和桥,点双联通分量。思路对于一个无向图,圆方树理解可以如下:原图中点是圆......
  • 圆方树学习笔记
    今天在做ABC318G这道题,要用到圆方树的知识,于是就去学了圆方树。学习圆方树首先需要学习点双连通分量以及缩点,此处不多赘述。圆方树中分两种类型的点:圆点和方点。圆点指的是原来的无向图中的所有点,而方点指的是每一个点双连通分量所代表的点。相当于每一个点双连通分量就是一个......
  • 圆方树 useful things
    圆方树,是解决仙人掌问题的实用方法,假设最初图都是圆点,对于每个环新建一个方点并连接这个环上所有圆点,能很好规避同一个点可能属于很多个环的情况,并且发现build完之后是一棵树广义圆方树,能够不局限于去解决仙人掌问题,能上升到无向图层面,很好解决图上路径类,等等问题那么如何建立圆......
  • 圆方树 useful things
    圆方树,是解决仙人掌问题的实用方法,假设最初图都是圆点,对于每个环新建一个方点并连接这个环上所有圆点,能很好规避同一个点可能属于很多个环的情况,并且发现build完之后是一棵树广义圆方树,能够不局限于去解决仙人掌问题,能上升到无向图层面,很好解决图上路径类,等等问题那么如何建立圆......
  • 圆方树
    圆方树的引入我们知道,图没有很好的性质,而树有很多性质,并且容易通过很多方式来维护树上信息,因此将图上问题转化为树上问题是我们想要解决的。圆方树就是将图转化为树的数据结构。圆方树的分类圆方树分为两类:狭义圆方树,广义圆方树。狭义圆方树狭义圆方树是可以用来将仙人掌图转......
  • 圆方树
    为什么只写圆方树呢,因为点双代码比圆方树长一倍其实是因为边双可以被圆方树表示出来前言这里给tarjan中的low数组的定义明确一下,其代表的是包括自己在内的搜索子树内经过最多一条非树边能够到达的最浅节点边双这个很简单,如果有一个点的low值等于他的dfn序了,那它和栈......
  • 「学习笔记」圆方树
    圆方树最初是处理「仙人掌图」(每条边在不超过一个简单环中的无向图)的一种工具,不过发掘它的更多性质,有时我们可以在一般无向图上使用它。个人觉得,圆方树是一个很好的工具。圆方树的题目更多的侧重于想,而不是怎么建圆方树。前置知识——点双连通分量点双连通分量:不存在割点的图。......
  • 圆方树
    构建在将图变为树的方法里,圆方树与v-dcc类似。圆方树中,原来的每个点对应一个圆点,每个点双对应一个方点。故圆方树的节点数为\(n+c\),其中\(n=|V|\),\(c=|\text{v-dcc}|\).对于每个点双,其方点向这个点双里的每个点连边,形成一个菊花图,多个菊花图通过割点连接。割点的数量小......