入门级图论
文章平均质量分 77
xkey
AC
展开
-
有向图强连通分量Tarjan算法
在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}也分别是两个强连通分量: 根据定义,用双向遍历取交集的方法求强连通分量,时间转载 2011-11-15 15:10:17 · 934 阅读 · 0 评论 -
优先队列优化的Dijkstra算法
直接贴代码#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL long longconst int N = 30005;const LL INF = 1LL <原创 2011-11-16 20:08:09 · 1623 阅读 · 0 评论 -
优先队列优化prim算法
POJ 1251#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL long longconst int N = 2000;const int INF = 1原创 2011-11-16 21:37:45 · 5227 阅读 · 3 评论 -
次小生成树
次小生成树一定是最小生成树里去掉一条边,再加上另一条边构成的。假设加入边(u,v)那么MST一定形成环,那么就需要去掉环中最大权值的边。我们也可以在求最小生成树的时候预先求出u到v最短路径上的最大权值,思路是MST每次加入一个新的节点v,那么已经在MST中的节点u到v的最短路径上的最大权值一定等于max(f[j][pre[v]],g[pre[v]][v]);,pre[v]表示v的父节点,因原创 2011-11-18 13:25:05 · 852 阅读 · 0 评论