之前一直用的是tarjan第一次学习到这个来试一下。 唔,就是裸的算法,然后如果出度为0的点只有一个,输出这个点的大小。 ...
分类:
编程语言 时间:
2017-09-26 22:25:39
阅读次数:
205
理解 在有向图G中,如果两点互相可达,则称这两个点强连通,如果G中任意两点互相可达,则称G是强连通图。 定理: 1、一个有向图是强连通的,当且仅当G中有一个回路,它至少包含每个节点一次。 2、非强连通有向图的极大强连通子图,称为强连通分量(SCC即Strongly Connected Compone ...
分类:
其他好文 时间:
2017-09-26 11:12:25
阅读次数:
259
话说昨天练习的时候,有一道题是要求强连通分量预处理的。然而那时我还不知道tarjan算法为何物,于是糊出了如下求强连通分量的算法。(时间复杂度O(n*logn)) 于是用这个算法写了那道题,居然AC了。(那题还要求单源最短路,卡不掉我的O(n*logn)预处理2333) (注:这个辣鸡算法就是用并查 ...
分类:
编程语言 时间:
2017-09-24 20:20:05
阅读次数:
221
1.校门外的树(tree.c/cpp/pas 128M,1s) Description LSGJ扩建了,于是校门外有了一条长为L的路。路上种了一排的树,每相邻两棵树之间的距离为1,我们可以把马路看成一个数轴,马路的一端在数轴0的位置另一端在数轴L的位置,数轴上的每个整数点都有一棵树。 众所周知,zd ...
分类:
其他好文 时间:
2017-09-24 17:27:50
阅读次数:
198
[连通分量专题] 硬着头皮刷了下连通分量。。 强连通就不说了,是最基础的部分; 割点(割顶),就是在无向图中,删掉这个点,使图不连通的点(或者说使得原图连通块数量增加)。 割边(桥),就是在无向图中,删掉这个边,使图不连通的边(或者说使得原图连通块数量增加)。 那么割顶和桥的求法很类似—— 我们都采 ...
分类:
其他好文 时间:
2017-09-17 18:57:34
阅读次数:
167
tajan的dfs树系列算法: 求解割点,桥,强连通分量,点双联通分量,边双联通分量; tajan是一个dfs,把一个图变成一个dfs树结构, dfs树结构,本质是通过一个没有任何要求的dfs把图的边分为:树边和返祖边: 树边:dfs中父节点与其未曾遍历过的子节点间的边, 返祖边:父节点与他的dfs ...
分类:
其他好文 时间:
2017-09-14 21:53:05
阅读次数:
191
芝士: 有向图强连通分量在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量。 如 ...
分类:
其他好文 时间:
2017-09-14 15:01:14
阅读次数:
308
题文:https://vjudge.net/problem/UVA-11324 题解: 这个题目首先可以发现,只要是一个强连通分量,要么都选,要么都不选,将点权看成强连通分量的点数,所以这个题目就转化成了DAG上的最大路。 稍微dp一下就好了。 代码: ...
分类:
其他好文 时间:
2017-09-12 23:20:14
阅读次数:
547
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3836 给你N个点,M条边的有向图,让你求加最少的边,使得该图 成为强连通图 思路: 找出所有强连通分量,若连通分量数为1,ans = 0; 否则缩点,若要使缩点后的图为强连通图,每个点至少入度和出度都为1, ...
分类:
其他好文 时间:
2017-09-10 11:18:49
阅读次数:
80
#include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef unsigned long long ULL; con... ...
分类:
其他好文 时间:
2017-09-09 13:50:24
阅读次数:
143