**************图论**************
小天位
这个作者很懒,什么都没留下…
展开
-
SPFA 算法详解( 强大图解,不会都难!)&&spfa优化——深度优先搜索dfs
https://blog.csdn.net/muxidreamtohit/article/details/7894298 适用范围:给定的图存在负权边,这时类似Dijkstra等算法便没有了用武之地,而Bellman-Ford算法的复杂度又过高,SPFA算法便派上用场了。 我们约定有向加权图G不存在负权回路,即最短路径一定存在。当然,我们可以在执行该算法前做一次拓扑排序,以判断是否存在负权回...转载 2017-12-12 09:50:10 · 51657 阅读 · 24 评论 -
How far away ? HDU - 2586
点击打开链接1 点击打开链接2 理解这个算法一定要抓住`递推`的思想(也有递归在里面, 也要抓住). Tarjan是利用并查集实现的, 在递推过程中, 一棵树的root节点代表这棵树(联系并查集来想), 这样做的好处是, 如果问点i与j的lca, 我们只要找i,j都属于的最小的哪棵子树就行了, 因为该子树就是我们的答案. 那如何确定是那颗子树呢? 这一点后面再解释一下. 下面说Tar...原创 2018-04-10 19:25:48 · 154 阅读 · 0 评论 -
Tarjan 算法详解
一个神奇的算法,求最大连通分量用O(n)的时间复杂度,真实令人不可思议。转自废话少说,先上题目题目描述:给出一个有向图G,求G连通分量的个数和最大连通分量。输入:n,m,表示G有n个点,m条边下面m行每行包含 x,y,表示有一条x到y的有向边输出:第一个数表示连通分量的个数,第二个数代表最大连通分量输入示例(如下图)6 81 21 42 32 53 64 55 15 6输入示例4 ...转载 2018-04-06 15:34:20 · 216 阅读 · 0 评论 -
Floyd判圈算法(Floyd's cycle detection
Floyd判圈算法(Floyd Cycle Detection Algorithm),又称龟兔赛跑算法(Tortoise and Hare Algorithm)。该算法由美国科学家罗伯特·弗洛伊德发明,是一个可以在有限状态机、迭代函数或者链表上判断是否存在环,求出该环的起点与长度的算法。 如果有限状态机、迭代函数或者链表上存在环,那么在某个环上以不同速度前进的2个指针必定会在某个时刻...转载 2019-03-25 14:03:03 · 1249 阅读 · 1 评论