强联通分量及缩点 #include<bits/stdc++.h> #define re register #define v e[i].to using namespace std; const int lzw=1e4+3; int n,m,head[lzw],tot,h[lzw],cnt,dfn[ ...
分类:
其他好文 时间:
2020-11-06 01:55:25
阅读次数:
17
##C++版本: Tarjan强联通分量 void tarjan(int u) { int v; dfn[u] = low[u] = ++in; instack[u] = true; Stap[++stop] = u; for (int i = head[u]; i; i = eg[i].nex) ...
分类:
移动开发 时间:
2020-09-18 00:10:24
阅读次数:
50
算法介绍 tarjan tarjan算法要求使有向图。 Tarjan就是一个辅助作用,把有环图缩为无环图,也就是将强联通分量缩成一个点。 几个数组 dfn时间戳,low仍在栈中的最小时间戳,dag缩点后的数组,ins是否在栈中。 void tarjan(int x) { dfn[x]=low[x]= ...
分类:
编程语言 时间:
2020-07-11 12:48:47
阅读次数:
95
题目链接 题意 给定一张左部$N$个点,右部$M$个点,$E$条边的二分图,求二分图最大匹配的非可行边的条数 题解 对二分图加入源点和汇点建图跑Dinic,得到一组最大匹配后对残量网络求强联通分量。则边$(x,y)$是非可行边的判定方法为:剩余容量为1且$x$,$y$不属于同一个强联通分量,时间复杂 ...
分类:
其他好文 时间:
2020-05-01 00:42:12
阅读次数:
59
给定一个可以划分为不超过两个团的稠密图,以补图的形式描述。求有多少对点满足在它们之间建边后最大团的大小会增加。$n \leq 10^4, m \leq 1.5\times 10^5$ Solution 原图的最大团就是补图的最大独立集,由题意补图是二分图,于是转化为求删去哪些边可以使得二分图的最大独 ...
分类:
移动开发 时间:
2020-03-04 09:53:42
阅读次数:
101
概念: 有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量。 注:强联通分量仅仅是对有向图来说。 代码 ...
分类:
编程语言 时间:
2020-02-19 23:42:40
阅读次数:
83
首先,taj是用来干嘛的? taj主要处理两种问题: 1.找强连通分量 2.找割点 均可在O(n)时间内完成 taj的大体思路就是把一张图改成一棵树,钦定一个点,作为根; 然后我们有两个数组: dfn[u]:u的时间戳 low[u]:u这一坨东西的最早出现的时间(感性理解) 求强联通分量: 强连通分 ...
分类:
其他好文 时间:
2020-01-22 10:42:42
阅读次数:
66
最近学了有向图的强联通分量。有kosaraju算法,不过写着比tarjin麻烦。所以就只记录tarjin算法。 跟求无向图的双连通分量很相似,先贴代码。 看一看例题。 在数学中,我们经常要完成若干个命题的等价性证明。比如 有4个命题a,b,c,d,我们证明a<->b,b<->c,最后c<->d。注意 ...
分类:
移动开发 时间:
2019-10-27 20:20:29
阅读次数:
112
题目: 分析: 这道题真的毒瘤,思想很简单,但是细节很多。。 题意:找到从1~n的必经点(每条信息都能获取),且不在一个点数>=2 的强连通分量中(恰好获取一次)。 先将有向图缩点,转换成一张有向无环图。 然后对缩点后的图进行正反拓扑,求出必经点。 再看必经点是否在一个点数>=2的强联通分量中。 正 ...
分类:
其他好文 时间:
2019-10-11 20:22:15
阅读次数:
78
题意 给出一个有向图,A任务:求最少需要从几个点送入信息,使得信息可以通过有向图走遍每一个点B任务:求最少需要加入几条边,使得有向图是一个强联通分量 思路 任务A,比较好想,可以通过tarjan缩点,求出入度为0的点的个数任务B一开始以为任务A,B没有关系其实是入度为0的点的个数、出度为0的点的个数 ...
分类:
Web程序 时间:
2019-02-14 23:39:55
阅读次数:
243