首页 > 其他分享 >『联合省选2025集训』『图的连通性进阶』 知识点 总结

『联合省选2025集训』『图的连通性进阶』 知识点 总结

时间:2024-12-28 15:41:59浏览次数:5  
标签:知识点 连通 连通性 进阶 子图 开耳 分解 边双

前言

若有长风绕旗,那便是我在想你了。

这周讲了个图论连通性板块的一些进阶知识,周六全国第一给我们讲了一些树上的问题,感觉树剖板块实现难度较大,后面几道偏思维的题会有些许好转。

这里就先写写连通性相关的进阶的一些知识点吧。

主要涵盖:耳分解,双极定向,三连通分量和一些重要的结论。

(其实我不会告诉你大部分都是我抄的 \(\text{2023}\) 年的集训队论文。)

建议先理解透彻双连通分量以及圆方树的相关知识和求法再来进阶,不然就会像我一样,调半天的三连通分量,因为下面这张图:

耳分解

\(\large \mathbf{Difinition \ 1}\)

我们有如下对于耳,开耳的定义:

在无向图 \(G=(V,E)\) 中,有一个子图 \(G'=(V',E')\),若存在简单路径或者简单环 \(P:x_1\to x_2\to x_3.....\to x_t\),满足 \(x_1,x_t\in V',\forall i\in [2,t-1],x_i\not\in V'\),则称 \(P\) 是 \(G\) 中关于 \(G'\) 的耳,如果 \(P\) 是简单路径,那么则称 \(P\) 是 \(G\) 关于 \(G'\) 的开耳。

\(\large \mathbf{Difinition\ 2}\)

我们再给耳分解下一个定义。

对于无向连通图 \(G=(V,E)\),有一个连通子图序列 \((G_0,G_1,....G_k)\),满足以下条件:

  • \(G_0\) 是一个简单环(一个点也是可以的),以及 \(G_k=G\)。
  • \(\forall i\in [1,k]\),\(G_{i-1}\) 是 \(G_i\) 的子图。
  • 如 \(G_i=(V_i,E_i)\),那么 \(E_i \setminus E_{i-1}\) 就是 \(G\) 中关于 \(G_{i-1}\) 的耳。

满足上述条件的连通子图序列,就称为 \(G\) 的一个耳分解。

当然,这里的耳分解将里面所有的耳换成开耳就可以得到开耳分解的定义。

\(\large \mathbf{Theory\ 1}\)

无向连通图 \(G=(V,E)\) 中存在耳分解当且仅当图 \(G\) 边双连通。

相当于两者之间是个充要条件的关系,故我们分步证明。

先证必要性,即 \(G\) 存在耳分解 \(\to\) \(G\) 边双连通:

  • 假设 \(G\) 的耳分解是 \((G_0,G_1,....,G_k)\)。根据定义,\(G_0\) 显然边双连通,而在 \(G_i\) 边双连通时,对于 \(G_{i+1}\) 的加入,可以发现 \(E_{i+1}\) 内部显然不可能存在一条割边(因为你总是能从两个方向中的一个到达这个点),故 \(G_{i+1}\) 也满足边双连通,然后根据数学归纳法,\(G\) 边双连通。

再证充分性,即 \(G\) 边双连通 \(\to\) \(G\) 存在耳分解:

  • 首先,如果 \(|E|=0\),那么显然 \(|V|=1\),显然成立。
  • 否则,先以一为根,搞出图 \(G\) 的一颗搜索树,然后按照如下方式构造耳分解:
  • 第一步,由于这个图是边双联通的,故我们一定可以找到一条非树边 \(1\to x\),那么这条边就会和 \(1\sim x\) 这条路径构成一个简单环,我们钦定这个简单环就是我们要构造的 \(G_0\)。
  • 第二步,假设现在已经生成了连通子图的序列 \(G_i\),如果 \(G_i\) 的点集 \(V_i\not= V\),找到一个点 \(x\) 满足 \(x\notin V_i \ \wedge\) \(x\) 在搜索树上的父亲 \(y\in V_i\)。仍然通过边双连通的性质,我们一定可以找到一条路径 \((u,v)\) 满足 \(u\) 是 \(y\) 的祖先,\(v\) 是 \(x\) 的后代,可以发现,\(v\to u\) 这条边和 \(y\sim v\) 这条路径,就会构成一个新的耳,且至少含有一个新点 \(x\),令 \(G_{i+1}\) 表示 \(G_i\) 加上这个耳。(可以发现,由于 \(G_i\) 一直是一个包含了根节点的联通块,所以在 \(V_i\not= V\) 时,这样的 \(x\) 显然是一直存在的。
  • 第三步,我们在 \(V_i\not= V\) 的时候持续进行第二步,必然只会在最后 \(V_i=V\) 时终止。可能这个时候边集还 \(\not= E_i\),可以发现未加入的每条边和他的两个端点会分别构成一些耳,然后依次往 \(V_i\) 里面放入即可。

于是证毕。

\(\large \mathbf{Theory\ 2}\)

至少含有三个点的无自环无向连通图 \(G\) 存在开耳分解当且仅当 \(G\) 点双连通。

标签:知识点,连通,连通性,进阶,子图,开耳,分解,边双
From: https://www.cnblogs.com/SFsaltyfish/p/18637540

相关文章

  • SFLS 初一第一学期12.5&12.6 难点重点知识点易错点整理
    \(12.5\)用数轴上的点表示实数实数与数轴上的点之间的关系首先,我们提出一个问题:怎么用数轴上的点表示所有实数?对于这个问题,我们先将实数分为有理数部分和无理数部分。有理数部分我们知道,有理数可以用\(\frac{p}{q}\)表示,其中\(p,q\inZ,q\ne0,(p,q)=1\)。那么有理数可......
  • Vue中动态样式绑定+CSS变量实现切换明暗主题功能——从入门到进阶
    1.直接借助Vue的动态绑定样式绑定Vue动态样式绑定在Vue中,动态样式绑定是一种强大的功能,它允许开发者根据数据的变化动态地更新元素的样式。以下是对Vue动态样式绑定的详细知识梳理与详解:一、基础知识Vue的动态样式绑定主要通过v-bind:style(或简写为:style)指令来实现。通......
  • 华为-eNSP-静态路由知识点与基本配置
    什么是静态路由?  静态路由是一种网络路由方式,其路由信息是由网络管理员手动配置的,而不是通过动态路由协议自动学习的。静态路由是固定的,不会随着网络状态的变化而变化,这种路由方式适用于网络拓扑结构简单且稳定的环境,尤其是在中小型网络中较为常见。静态路由的优点和缺点......
  • 『联合省选2025集训』『图的连通性进阶』Day3 略解
    前言我们趋行在人生这个亘古的旅途,在坎河中奔跑,在挫折里涅槃,忧愁缠满全身,痛苦飘洒一地。我们累,却无从止歇;我们苦,却无法回避。今天是连通性的进阶题目,重点是耳分解,双极定向,以及边三连通分量。因为调题速度过慢,导致被硬控,所以第二天晚上补的差不多了再来写的。感觉知识点方面......
  • 动归进阶 ~最大子矩阵~
    【试题描述】已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1*1)子矩阵。比如,如下4*4的矩阵0-2-7092-62-41-41-180-2的最大子矩阵是:92-41-18这个子矩阵的大小是15。【输入要求】输入是一个......
  • 洛谷题单指南-线段树的进阶用法-P3834 【模板】可持久化线段树 2
    原题链接:https://www.luogu.com.cn/problem/P3834题意解读:静态区间第k小问题,可持久化线段树(也称为主席树)模版题。解题思路:一、朴素想法:如何求完整区间[1,n]第k小1、权值线段树设n个数构成序列a,b数组代表a中元素出现的次数,即b数组的构建方式为对每一个a[i]做b[a[i]]++。针对b......
  • 天线设计的知识点,千万别错过啦!
    天线设计,也是4G模组应用中最容易踩坑的地方。今天主要分享讨论Air700ECQ/EAQ/EMQ系列模组,天线管脚到4G天线之间的电路设计和走线规则。Air700ECQ/EAQ/EMQ模组属于Cat.1bisR13架构,天线架构精简为单天线架构,去掉了分集接收天线,因此只需要一根天线。知识点:Cat.1bis相对于Cat.1......
  • C++中的类继承知识点总结1(13章)
    一)类继承总结继承通过使用已有的类(基类)定义新的类(派生类),使得能够根据需要修改编程代码。公有继承建立is-a关系,这意味着派生类对象也应该是某种基类对象。作为is-a模型的一部分,派生类继承基类的数据成员和大部分方法,但不继承基类的构造函数、析构函数和赋值运算符。派......
  • Flutter进阶组件(1):RadioListTiles(单选列表项)
    RadioListTile是一个特殊的ListTile,它内嵌了一个单选按钮(Radio),包含更多信息的单选项,提供多种配置信息的属性,可以表现更丰富的信息。这使得它非常适合用来创建单选列表项,常用于让用户在多个选项中选择一个的场景。一、属性RadioListTile组件提供了以下属性,以支持各种自定义需求:......
  • Flutter进阶组件(3):SwitchListTile(开关列表项)
    SwitchListTile是一个包含开关(Switch)的列表项,非常适合用来创建带有标题、副标题以及开关的列表项,常用于设置界面,让用户可以轻松地开启或关闭某个功能。一、基本使用SwitchListTile(title:constText('EnableNotifications'),value:true,//开关的初始状态onChanged......