连通图
反向爆零直至AK
从零开始的编程生活,枯燥却紧张
展开
-
G - Strongly connected(连通图)
题目链接:Strongly connected题目大意:给你n个点,m条边(有向边),问:最多再加多少条边,使得该图不是一个强连通图。思路:当初我想的是找出缩点之后,点数(x)最少的缩点,那么剩下的点就是y=n-x,这y个点组成一个强连通图,x个的缩点,每一个向y个点作一条边,这样x*(x-1)+y*(y-1)+x*y-m就是答案。 但是一直wr,因为你找的缩点可能入度或出度不一定为零,原创 2018-01-23 09:35:08 · 276 阅读 · 0 评论 -
Warm up(连通图缩点+求最长的桥)
题目链接:Warm up题目大意:有N个行星通过M双向通道连接(有重边),如果他们决定建造一个新的通道,他们能有多少桥。思路:连通图缩点,求出桥的个数,再求出缩点后的最长链(即为可以减少的最多桥数),减去即可。代码:#include#include#include#include#includeusing namespace std;const int max1原创 2018-01-26 14:37:39 · 215 阅读 · 0 评论 -
全网最!详!细!tarjan算法讲解。
转载博客链接:传送门全网最详细tarjan算法讲解,我不敢说别的。反正其他tarjan算法讲解,我看了半天才看懂。我写的这个,读完一遍,发现原来tarjan这么简单!tarjan算法,一个关于 图的联通性的神奇算法。基于DFS(迪法师)算法,深度优先搜索一张有向图。!注意!是有向图。根据树,堆栈,打标记等种种神(che)奇(dan)方法来完成剖析一个图的工作。而图的联通性,就是任督二脉通不转载 2017-08-23 18:11:04 · 320 阅读 · 0 评论 -
连通图总结及例题
【什么是连通图】在图论中,连通图基于连通的概念。在一个无向图 G 中,若从顶点i到顶点j有路径相连(当然从j到i也一定有路径),则称i和j是连通的。如果 G 是有向图,那么连接i和j的路径中所有的边都必须同向。如果图中任意两点都是连通的,那么图被称作连通图。如果此图是有向图,则称为强连通图(注意:需要双向都有路径)。连通图的题目有许多,我们先要了解: 文章的最下面有相关的例题,可以拿来练原创 2018-01-20 17:29:56 · 8338 阅读 · 0 评论 -
Network of Schools (连通图)
题目链接:传送门题目大意:有n个学校,每个学校给定能够传送到信息的学校,以0结束。 问:最少要选择几个学校,才能将信息传送到所有的学校,要至少加几条边,才能从任意学校都能将信息传送到所有的学校。思路:先缩点,再找出缩点后入度为零的点的个数x,找出出度为零的点的个数y,输出x,max(x,y)即可,但是要注意,如果整个图都是一个连通图,那么就输出1 0。第一问:我们来想缩点后的新图,如原创 2018-01-20 19:55:02 · 279 阅读 · 0 评论 -
Network(求割点—模板题)
题目链接:Network题目大意:给你n个电话交换机,无向图,可以双向通话。 问 :有多少个关键位置(这个交换机坏了,会导致有些电话无法通话)。思路: 标准的求割点的问题,不会的可以看一下博客 传送门。一切尽在代码中:#include#include#include#includeusing namespace std;const int maxn=1009;原创 2018-01-20 20:06:30 · 244 阅读 · 0 评论 -
Critical Links(连通图——求桥)
题目链接:Critical Links题目大意:给你n个点,m条边,问你有多少桥,并将其输出。 思路:也是模板题———不会的可以看代码或者我的博客! 不过这一题有格式要求,要求从小到大输出,并且每个数据后有空行。代码:#include#include#include#includeusing namespace std;const int maxn=1009;in原创 2018-01-20 20:15:57 · 507 阅读 · 0 评论 -
SPF(连通图---求割点)
题目链接:SPF题目大意:给你n条边,问哪条边将网路分成了几个子网络(输出所有的情况)。 思路:给你的是无向图,直接上求割点的模板。代码:#include#include#include#includeusing namespace std;const int maxn=2009;int dfs_clock,DFN[maxn],cut[maxn],low[maxn]原创 2018-01-20 20:28:13 · 336 阅读 · 0 评论 -
Burning Bridges(连通图---求桥)
题目链接:Burning Bridges题目大意:给你n个点,m条边(有重边)。 问:有多少个桥,并输出他们对应边的编号(按照题目输出的次序)。思路:首先要想到是求桥的题目,并且要去重,还要记录边的原始编号,还有就是格式问题了,最后的编号没有空格,只有每组数据之间有空行。代码:#include#include#includeusing namespace std;co原创 2018-01-20 20:39:21 · 484 阅读 · 0 评论