图的联通相关
文章平均质量分 79
Lazines_by
好吧,我要工作了
展开
-
图的强连通tarjan学习
Tarjan 算法 一.算法简介 Tarjan 算法一种由Robert Tarjan提出的求解有向图强连通分量的算法,它能做到线性时间的复杂度。 我们定义: 如果两个顶点可以相互通达,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly con转载 2017-04-25 21:07:46 · 387 阅读 · 0 评论 -
图的弱联通
poj 2762 题意: 类似于强联通,这个是求一个图只要任意两点能够x- >y或者y -> x ,就能行,而不一定要求两个都符合; 思路:先tarjan进行联通缩点,缩点思路为:走tarjan的时候进行了染色,知道某个点数属于哪个联通块,然后对每个边的两端点进行是否属于同一个联通块进行判断,如果不是同一个联通块,就得对缩完后的点进行加边,然后就形成了一个DAG,然后直接用t原创 2017-04-25 21:35:59 · 940 阅读 · 0 评论 -
hdu5934(tarjan缩点)
题意:给出一些炸弹,引爆需要花费一些价值,引爆炸弹会有一个爆炸范围,在爆炸范围之内的炸弹也会被引爆。求出包所有的炸弹引爆的最小价值。 思路:有炸弹在一个炸弹的爆炸范围之内就说明这个炸弹能引爆其他炸弹,说明要建的是有向图。 现在这个有向图可能出现环或者一些复杂的情况,所以需要tarjan缩点,使其成为一个简单的DAG,引爆联通块中的任何一个点,这个联通块中所有的点就会被引爆,这样的话判断是否原创 2017-07-21 09:13:55 · 357 阅读 · 0 评论 -
hdu 3861(tarjan 缩点 + 二分图匹配 求最小路径覆盖
题意: 题目大意:一个有向图,让你按规则划分区域,要求划分的区域数最少。 规则如下:1、有边u到v以及有边v到u,则u,v必须划分到同一个区域内。2、一个区域内的两点至少要有一方能到达另一方。3、一个点只能划分到一个区域内。 解题思路:根据规则1可知必然要对强连通分量进行缩点,缩点后变成了一个弱连通图。根据规则2、3可知即是要求图的最小路径覆盖。 定义: 最小路原创 2017-07-23 17:17:20 · 300 阅读 · 0 评论 -
hdu 4635(tarjan)
题意:给出一个有向图,如果是联通直接输出-1,不是的话求最多可以增加多少条边使得图还是不联通的。 思路:先跑一遍他tarjan进行缩点,然后选取一个联通块作为与其他的联通块不联通的那个块,然后其他的联通块都联通上,这个能作为选取的那个联通块的话只有入度或者只有出度,因为当你把其他的点该连上的都连上的话就会使得这个联通块与其他的联通块相连,破坏连通性。 最大的点的话就是将两块都分别变成完全图,然原创 2017-08-07 22:42:58 · 193 阅读 · 0 评论 -
hdu4738(求一个无向图的桥的最小值)
题意:如标题 思路:tarjan进行缩点,然后各个缩点之间相连的边就是桥了。遍历一下找一下最小值。第一次在无向图中缩点,基本跟有向图差不多。就是为了使同一条边不被遍历两次,用一个flag记录。 PS:这个题有一个巨坑,就是有桥的值为0的时候,应该输出1,结合一下实际。 #include using namespace std; typedef long long ll; typede原创 2017-08-21 11:25:12 · 223 阅读 · 0 评论 -
poj 2186 (tarjan 缩点)
题意:给出一个有向图,找到能被所有的点都能达到的点的个数。 思路: 首先他们都在一个联通块中。然后找出度为0的那个联通块,就是答案。 //#include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typ原创 2017-09-06 18:34:43 · 278 阅读 · 0 评论