图论
文章平均质量分 78
丿Struggle丶
这个作者很懒,什么都没留下…
展开
-
ACM图论模板
最短路 Dijkstra不能使用在含负权的图中 朴素版dijstra:时间复杂度 O(n2)O(n^2)O(n2) #include<bits/stdc++.h> #define ll long long #define mem(a) memset(a,0,sizeof(a)) using namespace std; int n,m,g[600][600]; int d[600]; bool vis[600]; int dijstra(){ memset(d,0x3f,sizeof d);原创 2022-04-14 00:49:24 · 54 阅读 · 0 评论 -
有向图的强连通分量
tarjan算法可以用来求强连通分量(SCC) 作用: 将有向图(通过缩点,将所有连通分量缩成一点)——>有向无环图(DAG)满足拓扑序。 tarjan算法梳理的思路: 1.加时间戳; 2.放入栈中,做好标记; 3.遍历邻点: 1)如果没遍历过,tarjan一遍,用low[j]更新最小值low; 2) 如果在栈中,用dfn[j]更新最小值low 4.找到最高点: 1)scc个数++ 2)do-while循环:从栈中取出每个元素;标志为出栈;对元素做好属于哪个scc;该scc中点的数量++ 例题:Acw原创 2022-03-22 19:36:46 · 248 阅读 · 0 评论