强连通
1
hesorchen
这个作者很懒,什么都没留下…
展开
-
POJ1236DAG转强连通图
题目 POJ 1236 不难得出第一问答案是,对原图tarjan缩点、转化为DAG之后入度为0的点个数。 第二问有个结论:要将DAG图转化为强连通图,需要增加的最少单向边数量为max(indegree,outdegree)。 因为强连通图中每个点对都要互相可达,那就每个点都要可进可出。 代码 #include <iostream> #include <cstdio> #include <string> #include <cstring> #include &原创 2021-07-22 10:23:25 · 181 阅读 · 0 评论 -
HDU1269tarjan求强连通分量
题目 HDU 1269 给一张有向图问是否每个点对都能互相到达。 tarjan求强连通分量模板。 代码 #include <bits/stdc++.h> using namespace std; const int N = 10000 + 5; vector<int> edge[N]; int dfn[N], low[N], ct, cnt; bool instack[N]; stack<int> st; void tarjan(int u) { dfn[u]原创 2021-07-21 19:46:06 · 133 阅读 · 0 评论 -
tarjan强连通分量缩点模板
强连通定义 百度百科 强连通图(Strongly Connected Graph):是指在有向图G中,如果对于每一对vi、vj,vi≠vj,从vi到vj和从vj到vi都存在路径,则称G是强连通图。有向图中的极大强连通子图称做有向图的强连通分量。 缩点 在算法竞赛中,将强连通分量(例如环)处理成点会减少很多工作量。 上图中,1、3、5、2、6是一个强连通分量,经过缩点之后,变成下图。 tarjan算法 强连通图有如下性质,从图中一点出发,能经过所有点返回到起点。 可以利用以上性质,结合深度优先搜索,如果某原创 2021-07-20 09:49:37 · 193 阅读 · 0 评论