摘要: 线性求LCA算法 tarjan算法求LCA 离线算法,复杂度O(n + m) 简介: \(Tarjan\) 发明的离线查询两点间最近公共祖先的算法,复杂度优秀,但由于其离线的性质导致适用面不广。 算法概述: 将整棵树的所有节点分为三种类型: 已经遍历过,并回溯的节点 正在搜索的分支 还未搜索到的节点 在搜索过程中数组 阅读全文
posted @ 2022-05-22 22:24 Simon_...sun 阅读(62) 评论(0) 推荐(1)
摘要: 另类的状态转移方法 一、状态机 简述:一系列有序的事件,把点扩展成一个过程 初始化技巧: 初始化只有两种情况,0和极值。 1、0表示这个状态合法,可以从这个状态转移过来。 2、极值表示这个状态不合法,并不可以从这个状态转移过来 关于状态机的应用: 状态机可以较清楚的将一个混沌的状态,拆分成若干个清晰 阅读全文
posted @ 2022-05-12 09:07 Simon_...sun 阅读(45) 评论(0) 推荐(0)
摘要: 类Floyd算法 含义 类Floyd算法故名思意就是和Floyd算法类似的一种最短路算法,可以用于求有负环的图的多源最短路问题 此算法区别于传统Floyd算法的特点——利用两点之间经过边的数量来进行 dp 转移。所以该算法可以解决负环图中的任意两点间最短路问题。理论复杂度 \(O(Nn^3)\) , 阅读全文
posted @ 2022-04-20 22:40 Simon_...sun 阅读(75) 评论(0) 推荐(0)
摘要: 最小生成树的扩展应用 标签(空格分隔): 学术 理论基础(常用推论) 任意一颗最小生成树一定可以包括无向图中权值最小的边。 在最小生成树算法的实现过程中对于任意两个联通块 V ,E ,当前不在联通块内部的所有边中最小的,一定是在最小生成树中的。 课堂截图 注:这里加绝对值代表该联通块内节点的个数 最 阅读全文
posted @ 2022-04-05 22:33 Simon_...sun 阅读(111) 评论(0) 推荐(0)
摘要: ACwing161 solution 假设已经插入了 \(i\) 个字符串,现在要插入一个字符串 \(str\) 那么此时 \(str\) 产生不兼容的方式只有两种 \(str\) 是前 \(i\) 个已插入字符串的前缀 前 \(i\) 个字符串中存在 \(str\) 的前缀 对于第一种情况, \( 阅读全文
posted @ 2022-04-05 17:46 Simon_...sun 阅读(33) 评论(0) 推荐(0)