• 2024-11-10【模版】广义圆方树の建构
    ==>推倒重建版:voidtarjan(intu,intfather){ stack[++top]=v; dfn[u]=low[u]=++num; for(inti=head[u];i;i=ed[i].last) { intv=ed[i].to; if(v==father)continue; if(!dfn[v]) { tarjan(v,u); low[u]=min(low[u],low[v]);
  • 2024-11-02圆方树
    前置知识:点双连通分量定义圆方树:对于一个点双内的点,拆除点之间所有相连的边,并和一个代表该点双的点连边圆点为原图中的点,方点代表一个点双圆方树有狭义和广义两种狭义圆方树不把“杠铃形”当作点双,有圆圆边广义圆方树把“杠铃形”当作点双,只有圆方边狭义圆方树是解决仙人
  • 2024-11-01abc318_g Typical Path Problem 题解 圆方树
    题目链接:https://atcoder.jp/contests/abc318/tasks/abc318_g题目大意:给出一个有\(n\)个顶点和\(m\)条边的无向连通图\(G\),没有重边和自环。顶点的编号为\(1\simn\),边的编号为\(1\simm\),第\(i\)条边连接顶点\(u_i\)和\(v_i\)。给出图上三个不同的顶点\(A,B,C
  • 2024-10-24圆方树
    圆方树前置知识点双连通分量以下简称点双连通分量为点双。定义设$G=(V,E)$是一个连通无向图,$K$是$G$的点双,如果$K$中任意两点$u,v$都有路径相连,则称$K$是$G$的点双。性质两个点双最多有一个公共点,且这个点为割点。对于一个点双,它在DFS搜索树中dfn值
  • 2024-10-23圆方树学习笔记
    元方树。下文除特殊强调外,所有图皆为无向图。引入割点:在图中,删除某个点后,导致图不再连通的点。点双连通:在一张图中,取两个点\(u\)、\(v\),无论删去哪个点(除\(u\)、\(v\)自身外),\(u\)、\(v\)都能连通,我们就说\(u\)和\(v\)点双连通。点双连通分量(后文称点双):对于一个无向
  • 2024-10-23圆方树学习笔记
    前置芝士边双连通与点双连通oi-wiki上是这样说的:在一张连通的无向图中,对于两个点\(u\)和\(v\),如果无论删去哪条边(只能删去一条)都不能使它们不连通,我们就说\(u\)和\(v\)边双连通。在这里我们需要得出一个非常重要的性质:边双连通具有传递性。通俗来说,就是当\([x,y]\)
  • 2024-10-22圆方树
    小粉兔圆方树兔已经讲的非常好了,我就讲我的理解吧!!!大多数情况下,图论是比树结构要复杂多的,所以引入了一个圆方树的一种数据结构。把无向图转化为由原点与点双连通分量组成的树,原图的每一个点都是一个圆点,每一个点双都是一个方点,所以形成的新图有\(n+c\)个点,每个点双转为方点时
  • 2024-10-11圆方树
    点双联通分量:对一张图,若其不含割点,则其为一个点双。1,对于点双中的两个点(除只有两点一边的特殊图),可以视作其必然存在两条不同的简单路径,使两者经过的并集为空。2,对于点双中任意一对点,经过它们的简单路径的并集一定为点双本身,意即可以认为两点间简单路径可以通过点双内任意一点。
  • 2024-08-23最短路
    这是仙人掌的模板题,仙人掌不能有自环,但是可以有重边。多颗仙人掌组成的图叫做沙漠。将仙人掌的每个环缩成一个点之后,就会形成树仙人掌转树要利用圆方树:①.任选一个点为根②.此时每个环有且仅有唯一一个点到根的距离最近。然后将环中的点分类,离根节点最近的点叫“头”,剩余的点作
  • 2024-08-21圆方树
    定义割点:无向图中,若删除点及其连边,连通块变多,那么被删除的点为割点点双连通:若无向图中点对\(x,y\),删除任意非\(x\)和非\(y\)节点后,\(x\)和\(y\)任然连通,陈\(x,y\)点双连通点双连通子图:无向图中的一个子图\(G\),\(G\)中任意2点都是联通的,那么称\(G\)为原图的点双
  • 2024-07-21圆方树学习笔记 & 最短路 题解
    前言圆方树学习笔记,从一道例题讲起。题目链接:Hydro&bzoj。题意简述仙人掌上求两点距离。题目分析为了把仙人掌的性质发挥出来,考虑将其变成一棵树。圆方树就是这样转换的工具。先讲讲圆方树的概念:原图上的点为圆点,每个点双对应一个方点,树边都是方点连向点双内的圆点。具
  • 2024-07-17圆方树
    定义圆方树:将无向图转化为树形结构的数据结构,使得树上2点路径上的点都是原图的必经点。圆点:原无向图\(G\)中的点,仍然保留在圆方树中,称之为圆点。方点:将每一个点双连通分量新建一个“方点”。树边:每一个方点都向对应的点双内的圆点连边。基本性质:性质一:圆方树的总点数=
  • 2024-07-15圆方树
    一些概念割点:无向图中,若删除点x及其连边,连通块变多,那么x为割点。点双连通:若点对x和y,删除任意非x和非y节点后,x和y仍然联通,称x和y点双连通。点双联通子图:无向图中的一个子图G,G中任意两点都是点双连通的,那么G为原图的一个点双连通子图。点双联通分量:无向图中的极大点双联通子图
  • 2024-06-10【算法学习】圆方树——处理仙人掌的利器
    圆方树大概分两种,一个是圆方树,一个是广义圆方树。圆方树这可以解决仙人掌上的问题。任意一条边至多只出现在一条简单回路的无向连通图称为仙人掌。很多题解将其作为无向图构建,本文将其构建为外向树,在这个问题中两种构建方式不会影响求解。构建方式记读入的图为原图,构建的
  • 2024-03-29圆方树
    圆方树这里的圆方树指广义圆方树。对于一张\(n\)个点的无向图,其中包含\(k\)个点双,那么这张图建出的圆方树一共有\(n+k\)个点,其中前\(n\)个点为原图中的点,称为圆点,后\(k\)个点每个点代表一个点双,称为方点,每个点双与其中包含的点连边构成一个菊花,这\(k\)个菊花经由图
  • 2024-02-212024.2 做题记录
    省流:因为一月底回厦门玩然后又回泉州过年,直到2.17才开始做题。[APIO2018]铁人两项圆方树和后缀数组我都想开个贴单独写。考虑关于“简单路径”,在点双上都有很特殊的性质。考虑把原图的圆方树建出来,然后考虑简单路径和圆方树的关系。注意到,在同一点双的两点的简单路径的并集,
  • 2024-01-26圆方树学习笔记
    圆方树学习笔记圆方树是优秀的图论算法,从仙人掌图向无向图扩展,利用割点和点双联通分量的性质,实现了图向树的转换。对仙人掌的处理:圆方树——处理仙人掌的利器而且实现十分简单算法思路前置知识割点和桥,点双联通分量。思路对于一个无向图,圆方树理解可以如下:原图中点是圆
  • 2023-12-19P4630 [APIO2018] 铁人两项 题解
    今天学习了圆方树,并且做了一道和这道题很像的题,于是就又来做了一下这道题。题意给定一张不保证连通的无向图。求有多少个点对\((a,b,c)\)满足\(a\)到\(c\)的简单路径上经过了点\(b\)。思路显然圆方树。点双缩点过后构造一颗圆方树,然后考虑如何计算答案。圆方树有一个实
  • 2023-12-19圆方树学习笔记
    今天在做ABC318G这道题,要用到圆方树的知识,于是就去学了圆方树。学习圆方树首先需要学习点双连通分量以及缩点,此处不多赘述。圆方树中分两种类型的点:圆点和方点。圆点指的是原来的无向图中的所有点,而方点指的是每一个点双连通分量所代表的点。相当于每一个点双连通分量就是一个
  • 2023-11-08圆方树 useful things
    圆方树,是解决仙人掌问题的实用方法,假设最初图都是圆点,对于每个环新建一个方点并连接这个环上所有圆点,能很好规避同一个点可能属于很多个环的情况,并且发现build完之后是一棵树广义圆方树,能够不局限于去解决仙人掌问题,能上升到无向图层面,很好解决图上路径类,等等问题那么如何建立圆
  • 2023-11-08圆方树 useful things
    圆方树,是解决仙人掌问题的实用方法,假设最初图都是圆点,对于每个环新建一个方点并连接这个环上所有圆点,能很好规避同一个点可能属于很多个环的情况,并且发现build完之后是一棵树广义圆方树,能够不局限于去解决仙人掌问题,能上升到无向图层面,很好解决图上路径类,等等问题那么如何建立圆
  • 2023-10-12圆方树
    圆方树的引入我们知道,图没有很好的性质,而树有很多性质,并且容易通过很多方式来维护树上信息,因此将图上问题转化为树上问题是我们想要解决的。圆方树就是将图转化为树的数据结构。圆方树的分类圆方树分为两类:狭义圆方树,广义圆方树。狭义圆方树狭义圆方树是可以用来将仙人掌图转
  • 2023-08-14某谷 Rated 比赛泛做
    P9535「YsOI2023」连通图计数非常好题目,爱来自湖南。\(m=n-1\)等价于给定度数求树的个数,这是一个经典题,在「HNOI2004」树的计数有描述,即利用Prufer序列得到答案为\(\binom{n-2}{(d_1-1)(d_2-1)\ldots(d_n-1)}\)。\(m=n\)即基环树,对于整个大环建立一个虚点,该点向环上的所
  • 2023-08-13圆方树
    为什么只写圆方树呢,因为点双代码比圆方树长一倍其实是因为边双可以被圆方树表示出来前言这里给tarjan中的low数组的定义明确一下,其代表的是包括自己在内的搜索子树内经过最多一条非树边能够到达的最浅节点边双这个很简单,如果有一个点的low值等于他的dfn序了,那它和栈
  • 2023-08-11「学习笔记」圆方树
    圆方树最初是处理「仙人掌图」(每条边在不超过一个简单环中的无向图)的一种工具,不过发掘它的更多性质,有时我们可以在一般无向图上使用它。个人觉得,圆方树是一个很好的工具。圆方树的题目更多的侧重于想,而不是怎么建圆方树。前置知识——点双连通分量点双连通分量:不存在割点的图。