无向图双连通分量BCC(全网最好理解)
2024-10-09 01:36:47
不是标题党,之前我也写过一篇比较全的,但是对于初学者不友好。传送门?
双连通分量(Biconnected component):
1.边双联通 E-BCC
2.点双连通 V-BCC
双连通分量分为点双连通(V-BCC)和边双连通(E-BCC),这是图论学习中一个很重要的知识点,也是图的变形转化的一个主要方法。通过V-BCC缩点可以求割边(桥),也可以通过E-BCC缩点求割点。这是我们今天讲的主要的内容。
1.边双连通分量
先说不好理解的定义:若一个无向图的点两两间都有两条不重合的路径,那么我们就称这个无向图是边-双连通的。
我们看看这个定义又是什么意思,任意两点都有两条不重合的路径,就是说任意点都有两条边可以到达,那么任意去掉一条边,肯定还有另一条边连接,也就是说这个图中不存在割边。所以这个图是边双连通图。
我们画个图来理解:
这下来大家应该明白什么边双连通了,接下来讲边双连通分量(分支) 。
所谓分支就是一个子图,那么边双连通分支就是说原图中最大的一个双连通分支的子图。一定是最大不然会影响结果。比较好理解,直接上图。
这个图有两个双连通分量, 边双连通分量,就是这么多内容。我们再讲讲边双连通分量缩点。
如果将双连通分支用一个点表示,那么就叫做E-DCC缩点。经过缩点后建的图必然不存双连通分量,图中存在的边都不在双连通分支中,也就是说缩点后的边都是桥。
2.点双连通分支
定义:任意两条边都在一个简单环中。
就是说没有割点。还是画图吧!
这两个最大连通子图就是点双联通分支,类比边双连通分支。
也就是说经过缩点后的图中的点除了只有一条边的的点都是割点。
我们下一期讲Tarjan算法求双连通分量。
最新文章
- linux实践之ELF文件分析
- h5交互元素details标签
- Confluent Platform 3.0支持使用Kafka Streams实现实时的数据处理(最新版已经是3.1了,支持kafka0.10了)
- goldengate一些参数整理
- 关于mac安装rails报错clang: error: unknown argument
- day05-java-(循环问题,数组)
- 如何把双引号包含到echo命令的字符串中
- Qt 添加外部库文件(四种方法)
- VI一个终端编辑多个文件的命令
- HDOJ 2015 偶数求和
- .net通用权限框架B/S(一)
- 防抖(Debouncing)和节流(Throttling)
- 创建Activity
- Docker-compose 多个Docker容器管理:以MYSQL和Wordpress为例
- 20年硅谷技术牛人到访DataPipeline谈:技术如何与业务平衡发展
- Cordova入门系列(一)创建项目 转发 https://www.cnblogs.com/lishuxue/p/6008678.html
- laravel之知识点
- gitLib操作笔录《一》:创建分支,切换分支,提交分支到远程,以及基本代码clone与更新提交到远程操作指令
- StringUtils.isEmpty StringUtils.isBlank
- 【学习笔记】分类算法-k近邻算法
热门文章
- Java第六天,API中常用的类,StringBuffer、StringBuilder、包装类、System类的使用
- Matlab入门(一)
- Activity A 跳转到Activity B 生命周期
- 第十三节:telnetlib、redis、threading模块
- Python的深浅copy详解
- 谁说 Vim 不好用?送你一个五彩斑斓的编辑器!
- Python实现按键精灵(一)-键鼠操作
- 重启mysql服务
- net core天马行空系列:降低net core门槛,数据库操作和http访问仅需写接口,实现类由框架动态生成
- AppBoxFuture: Web在线报表设计与PDF生成