首页 > 其他分享 >《综述图论中连通性及相关问题的一些处理方法》笔记

《综述图论中连通性及相关问题的一些处理方法》笔记

时间:2023-04-23 20:24:35浏览次数:36  
标签:图论 连通性 综述 连通 等价 割集 切边 简单 非树边

基本概念

  • 边 / 点割集:若边集 \(E'\) 使得割掉这些边之后 \(u\to v\) 不连通,则 \(E'\) 是 \((u,v)\) 的边割集。类似地定义点割集。
  • 边 / 点连通度:若任意 \((u,v)\) 的割集大小都至少是 \(s\),则 \(u,v\) 是 \(s-\)边连通的。类似地定义点连通度。
  • Menger 定理:\(u\to v\) 的边连通度为 \(s\) 当且仅当存在至少 \(s\) 条边不交的从 \(u\to v\) 的路径,点连通度的情况类似。这实际上是最大流最小割定理的一个特化版本。

双联通性

  • 点双连通分量的性质:

    • 对于任意两点 \(u,v\),存在同时包含 \(u,v\) 的简单环。由 Menger 定理立得。
    • 对于点 \(u\) 和边 \(e\),存在同时包含 \(u,e\) 的简单环;对于两条边 \(e_1,e_2\),存在同时包含 \(e_1,e_2\) 的简单环。通过拆点可以转化到上面的情况。
    • 共环:若存在简单环同时包含 \(e_1,e_2\),则称它们是共环的。点双连通分量划分了共环关系导出的等价类。
  • 一种刻画双连通分量的视角:耳分解。

    • 定义 \((G_0,G_1,G_2,\cdots,G_k)\) 为 \(G\) 的耳分解,满足:\(G_k=G\);\(G_0\) 为一个简单环;\(G_i\) 为 \(G_{i-1}\) 基础上添加一条简单路径或者简单环得到。若只添加简单路径,则称 \((G_0,G_1,G_2,\cdots,G_k)\) 为 \(G\) 的开耳分解。
    • 一张图为边双连通图等价于它存在耳分解,一张图为点双连通图等价于它存在开耳分解。
    • 类似可以定义强连通图的耳分解。可以证明,一张图能被定向为强连通图,当且仅当它为边双连通图。

割空间与环空间

  • 割集:对于无向图 \(G=(V,E)\) 的二划分 \(V_1,V_2\),其割集 \(E=\{e|(x,y),x\in V_1,y\in V_2\}\),记作 \(C(V_1,V_2)\)。
  • 图的割集与生成树割集的对应。
    • 对于树,割集 \(E\) 对应的无序点集对 \((V_1,V_2)\) 唯一。
    • 对于 \(G\) 的生成树 \(T\) 的割集 \(E'\),存在唯一的 \(E'\subseteq E\) 为 \(G\) 的割集。原因是 \(E'\) 可以划分出点集。
  • 割空间:若将割集看作 \(\mathbb{F}_2\) 上的 \(|E|\) 维向量,则一张图的所有割集构成 \(n-c\) 维线性空间。
    • 只需证明割集和割集的对称差仍然是割集即可。该线性空间的一组基为一条树边和跨过它的非树边构成的割集的集合。
  • 环空间:将图上的简单环看作 \(\mathbb{F}_2\) 上的 \(|E|\) 维向量,则一张图的所有简单环构成 \(m-n+c\) 维线性空间。
    • 显然简单环与简单环的对称差仍然是简单环。该线性空间的一组基为一条非树边和它跨过的所有树边构成的环的集合。
  • 判断割集的方法:假设有 \(t\) 条非树边,考虑 \(t\) 维向量:非树边只有它编号对应的那一维为 \(1\),树边为跨过它的非树边的向量的和,则一个割集中所有边对应的所有向量的和为 \(0\)。
  • 切边等价:对于两条边 \(e_1,e_2\),若对于任意一个环,它或者同时包含 \(e_1,e_2\),或者同时不包含 \(e_1,e_2\),则称它们切边等价。
    • 两条边切边等价当且仅当它们同时为割边,或者删去它们两条边之后,其所在的边双连通分量不连通。
    • 判断割边等价的方式:\(e_1,e_2\) 切边等价当且仅当上文所述的向量相等。
  • 非割边的切边等价类能被环空间整系数线性表出(ICPC 2015 World Final)。

有向图

  • 动态可达性问题:bitset,询问分块。

  • 在\(\bmod m\) 意义下的有向图任意路径边权集合。

    • 对于强连通图上的一条边 \((u,v,w)\),存在 \(v\to u\) 的路径使得它的边权和为 \(-w\),这相当于建边 \((v,u,-w)\),此时的有向图满足反对称性。
    • 经过如上改造之后,有向图上的任意环的边权可以被所有仅包含一条非树边的边权整系数线性表出,与无向图的情况类似。
  • 竞赛图的兰道定理:一张竞赛图的出度序列 \(d\) 从小到大排序后,满足 \(\sum_{i=1}^k d_i\geq \dbinom{k}{2}\),其中满足 \(\sum_{i=1}^k d_i= \dbinom{k}{2}\) 的为缩点后的分界点。

标签:图论,连通性,综述,连通,等价,割集,切边,简单,非树边
From: https://www.cnblogs.com/yllcm/p/17347618.html

相关文章

  • 图(Graph)与图论
    听到图这个字,很多人会联想到图片、折线图、设计图等传统的图,今天要聊的图(Graph)是一种基本研究对象,用于表示实体与实体之间的关系。先说结论:图论:是组合数学分支,是主要研究图的学问,起源于柯尼斯堡七桥问题。图(数学):是用于表示物体与物体之间存在某种关系的结构。数学......
  • 图论笔记
    图的概念图:点--边度->有向图(入度,出度)||无向图(度)自环:若一条边的两个顶点为同一顶点,则此边称作自环。路径:从任何一个点出发,随意在图上走,走出来的序列叫路径。|简单路径(一条路径,每个点最多只能走一次) 特殊的图1)没有环的无向图:树-->无向,连通,无环  ||n个点n-1条边只有......
  • 模板——图论
    缩点(强连通分量)点击查看代码constintN=1e5+5,inf=1e9;vector<int>a[N];stack<int>stk;boolvis[N],instk[N];intdfn[N],low[N],col[N],w[N];//co:染色结果,w:点权vector<int>sz;//sz:第i个颜色的点数intn,m,dcnt;//voiddfs(intx){//Tarjan求强联通分量......
  • 洛谷 P8456 -「SWTR-8」地地铁铁(图论+结论)
    挺有意思的结论题,结论的证明比较复杂。据出题人说他大概想了几天几夜才证出来,所以本篇题解并不详细给出结论证明,如果有兴趣可以自己去看出题人的题解:https://www.luogu.com.cn/blog/AlexWei/solution-p8456。首先涉及到简单路径,肯定往双连通分量的方向思考。因此我们首先建出圆方......
  • “衰老标志物”重磅综述:细胞衰老、器官衰老、衰老时钟及其应用
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。随着人口老龄化程度不断加深,实现“健康老龄化(healthyaging)”已成为我国乃至世界迫切需要解决的重大社会和科学问题。据测算,我国60岁及以上老年人口将在2035年前后突破4亿,总人口占比将超过30%,进入重度老龄化阶段。衰......
  • 图论四道题目
    图论OJA.最小生成树TimeLimit:1000MSMemoryLimit:32768KTotalSubmit:14(6users)TotalAccepted:6(5users)SpecialJudge:NoDescription根据输入构建无向带权图,并利用kruskal法求出最小生成树,输出该最小生成树的各边权值和。Input输入第一......
  • 图论基础
     P1266速度限制不难看出,这道题除了“有些道路没有速度限制”,就是一个裸的最短路。我们可以用分层图的思想,将速度\(v\)看做单独的一维,另\(dis[i][j]\)表示从起点到点\(i\),并且当前速度为\(j\)时的最短路。于是\(Dij\)的状态转移方程就是:当前边有速度限制时:\(dis[ver[i]......
  • 图论
    207、课程表classSolution{publicList<Integer>[]edges;publicint[]ls;publicbooleanflag=true;publicbooleancanFinish(intnumCourses,int[][]prerequisites){edges=newList[numCourses];for(inti=0;i<......
  • 总结与归纳之图论
    (再开一个大坑好吧)前言总论+前置概念正文树上问题大杂烩拓扑序短路问题大杂烩生成树问题大杂烩斯坦纳树分层图差分约束连通性问题大杂烩欧拉/哈密顿路问题大杂烩二分图图匹配问题大杂烩网络流问题大杂烩特殊图问题大杂烩......
  • 算法基础模板整理(基础图论篇)
    拓扑排序bool topo(){    queue<int> q;    for(int u = 1; u <= n; u ++ )        if(!ind[u]) q.push(u);        int cnt = 0;    while(!q.empty()){        int u = q.front();        q.pop(); ......