摘要:
LCA_倍增法 说起LCA,大家一定不会陌生,最近公共父祖先。 那么求解这种问题,我熟悉的算法有两种:tarjan+并查集离线算法 / 倍增法 今天主要分享一下倍增法,效率是比前一种方法高的。 主要思想: 从深度较深的节点向上移动,直到和另外一个节点处于同一深度。 然后两个节点一起向上移动,直到各自
阅读全文
posted @ 2021-02-19 10:42
BryantKun
阅读(119)
推荐(0)
摘要:
初识tarjan算法,还要从一道算法考试题说起,当时没有听过这个算法,当然是铩羽而归 我理解的tarjan算法: 基础为dfs的思想,从根节点(可以是任意一个点)开始,递归的每个点,都按照访问顺序赋予编号,我们用dfn[]数组表示, 同时我们记录这些点的深度,用low[]数组表示 在dfn探索的过程
阅读全文
posted @ 2020-10-22 09:26
BryantKun
阅读(73)
推荐(0)
摘要:
求双连通图,需要使用缩点,缩点的意思就是将图中的环都缩为一个点,给这些点进行编号,最终必然形成一个树。 那么很容易推论出,至少要加的边数num=(leaf+1)/2; leaf即:所有度为1的点的个数(度大于1的点必为根节点) 代码如下: package com.Vjudge;import java
阅读全文
posted @ 2020-10-22 09:07
BryantKun
阅读(100)
推荐(0)
摘要:
//此题是未使用tarjan算法的递归实现,主要原因为,当某一条边属于两个环时,普通tarjan算法结果不对。 // 当然此题已有限制,边最多只属于一个环。import java.io.BufferedReader;import java.io.InputStreamReader;import ja
阅读全文
posted @ 2020-10-22 09:02
BryantKun
阅读(401)
推荐(0)
摘要:
闲来无事,学习了下新的存储结构:链式向前星。之前自己一直用邻接链表,发现这种方式好像不如链式向前星,具体原因也搞得不是很明白,有大佬可以帮忙解答一下。主要记录下链式向前星的存储应用结合dijkstra求最短路径 P4779 https://www.luogu.com.cn/problem/P4779
阅读全文
posted @ 2020-08-06 15:00
BryantKun
阅读(157)
推荐(0)
摘要:
P4467 https://www.luogu.com.cn/problem/P4467 [SCOI2007]k短路 求连通图中的第K短路 求第K短路需要使用A*算法, A* 寻路算法 原文地址: http://www.gamedev.net/reference/articles/article20
阅读全文
posted @ 2020-08-06 14:52
BryantKun
阅读(79)
推荐(0)