首页 > 其他分享 >圆方树

圆方树

时间:2023-10-12 09:02:41浏览次数:25  
标签:Tarjan 一个点 狭义 圆方树 数据结构 仙人掌

圆方树的引入

我们知道,图没有很好的性质,而树有很多性质,并且容易通过很多方式来维护树上信息,因此将图上问题转化为树上问题是我们想要解决的。圆方树就是将图转化为树的数据结构。

圆方树的分类

圆方树分为两类:狭义圆方树广义圆方树

狭义圆方树

狭义圆方树是可以用来将仙人掌图转化为树的一种数据结构。

广义圆方树

广义圆方树是可以用来将所有无向图转化为树的一种数据结构。

狭义圆方树

作者还没学广义圆方树,所以先来讲狭义圆方树。

仙人掌图

什么是仙人掌图?这里给出定义:

任意一条边至多只出现在一条简单回路的无向连通图称为仙人掌。

简单来说,就是图中有环并且图中任意两个环没有公共边的图。

如果你还不懂的话请看下图。

image

建树

我们回顾 Tarjan 算法。

在无向图中,Tarjan 算法找到图中的环,并且将环缩成一个点,这样就将原来的无向图变成了一棵树。

那这里你可能会问,那我还要圆方树干嘛,有 Tarjan 不就够了吗?还真不行,因为 Tarjan 将环都缩成一个点了,因此原来环上的很多信息你都没有办法保留了,所以在面对很多问题时就用不了了。

但是 Tarjan 算法给我们启发:可以将环看成一个整体。

于是产生了圆方树。

image

如图,原图中的每一个点看作一个圆点,而每一个环看作一个方点。

这时候我们将原来的边删去,每个圆点与它所在的环对应的方点之间连一条边,这就建好了一棵圆方树。

image

标签:Tarjan,一个点,狭义,圆方树,数据结构,仙人掌
From: https://www.cnblogs.com/reclusive2007/p/17758655.html

相关文章

  • 圆方树
    为什么只写圆方树呢,因为点双代码比圆方树长一倍其实是因为边双可以被圆方树表示出来前言这里给tarjan中的low数组的定义明确一下,其代表的是包括自己在内的搜索子树内经过最多一条非树边能够到达的最浅节点边双这个很简单,如果有一个点的low值等于他的dfn序了,那它和栈......
  • 「学习笔记」圆方树
    圆方树最初是处理「仙人掌图」(每条边在不超过一个简单环中的无向图)的一种工具,不过发掘它的更多性质,有时我们可以在一般无向图上使用它。个人觉得,圆方树是一个很好的工具。圆方树的题目更多的侧重于想,而不是怎么建圆方树。前置知识——点双连通分量点双连通分量:不存在割点的图。......
  • 圆方树
    构建在将图变为树的方法里,圆方树与v-dcc类似。圆方树中,原来的每个点对应一个圆点,每个点双对应一个方点。故圆方树的节点数为\(n+c\),其中\(n=|V|\),\(c=|\text{v-dcc}|\).对于每个点双,其方点向这个点双里的每个点连边,形成一个菊花图,多个菊花图通过割点连接。割点的数量小......
  • 点双边双强连通拓展(圆方树)以及一些小技巧
    点双边双强连通拓展以及一些小技巧目录点双边双强连通拓展以及一些小技巧小技巧:1.关于割点:2.关于点双和边双的判断技巧:3.关于自己制造样例的技巧:例题:拓展知识1.广义圆方树:知识点:例题:bzoj3331小技巧:1.关于割点:点双常常存在割点情况,很难搞,每次dfs都很头疼(不知道割点在哪几个连通......
  • 圆方树与仙人掌
    圆方树前置知识:点双连通分量tarjan求点双对于一个无向图,在维护某些信息时可以利用圆方树的方法把原图转为一棵树来处理我们称在原图上的点是圆点对于每个点双联通分量,新建一个连向点双内所有点的新点,称其为方点点双内的所有点除了向方点连边以外不向点双内其他点连......
  • 【题解】CF487E Tourists / 圆方树
    概念圆方树是一种基于无向图构造的树。我们知道,圆方树最早是WC上提出的处理仙人掌的东西,用于将树上做法拓展到复杂度正确的仙人掌做法。但是一些关于点双有性质的题也......
  • 从缩点到圆方树
    一些概念连通:无向图中的任意两点都可以互相到达。强连通:有向图中的任意两点都可以互相到达。连通分量:无向图的极大连通子图。强连通分量:有向图的极大强连通子图。DFS......
  • 圆方树学习笔记
    圆方树学习笔记oiwiki模板voidtarjan(intu){ dfn[u]=low[u]=++ct;st[++tp]=u;tot++; for(intv:g[u]) if(!dfn[v]) { tarjan(v);low[u]=min(low[v],low......
  • 割点、桥、圆方树
    割点与桥定义对于一个无向图,如果将一个点及其相连的边去掉后连通块数量增加,这个点就是割点;如果去掉一个边后连通块数量增加,这条边就是桥,也称割边。求法对无向图的每个......
  • 圆方树学习笔记
    部分内容参照了OI-wiki定义对于这样的一个无向图,左侧的\({1,2,3}\)和右侧的\({3,4,5}\)分别构成一个点双联通分量。中间的\(3\)号节点就是一个割点。不难发现,点双......