LCA
帐下幕僚
我只是一个普普通通的大学学生,我来到这里是想获得我在学校所不能得到的知识。
展开
-
poj3694Networks(边双连通分量+缩点+LCA)
首先求出所有边双连通分量,缩点后得到一棵树。之后每次加边就将边上两个点(新树的点)到他们lca路径上的桥去掉。 由于用边代表桥比较麻烦,所以在后面处理时是以边的终点标记桥。#include <iostream> #include <stdio.h> #include <algorithm> #include <stdlib.h> #include <stack> #include <vector>原创 2016-08-20 17:34:32 · 258 阅读 · 0 评论 -
hdu4612warm up(双连通分量+缩点+最长链)
首先求出整个图的强连通分量,就各个强连通分量缩为一个点,得到一棵树。那么当天树 的节点减一就是当前桥的数量,而求的是加一条边之后桥的最小数量。也就是说加的这一条边的两个端点到他们lca的路径上经过的点要最多,其实就是求树上的最长链。 求最长链的算法 从任意一个点出发,找到离他最远的一个点u; 然后在从这个点u出发,找到离他最远的一个点v 则u-v就是最长链。#include <iostrea原创 2016-08-20 21:29:31 · 238 阅读 · 0 评论