摘要: KMP 能在线性时间内判断模式串 \(a\) 是否是文本串 \(b\) 的字串。 定义 \(nxt_i\) 表示 \(a\) 中以 \(i\) 结尾的非前缀字串与 \(a\) 的前缀能匹配的最长长度。 #####如何求出 \(nxt\) 数组: 引理:若 \(x\) 是 \(nxt_i\) 的候选项 阅读全文
posted @ 2021-11-12 19:06 字如其人 阅读(126) 评论(0) 推荐(0)
摘要: 有向图中,若对于图中任意节点 \(x,y\) ,既存在 \(x\) 到 \(y\) 的路径,也存在 \(y\) 到 \(x\) 的路径,则该图是强连通图。 强连通分量是有向图的极大强连通子图。 求出一个有向图的强连通分量: 用 dfs 遍历图,访问到一个节点就把该节点入栈,并记录时间戳。 定义一个点 阅读全文
posted @ 2021-11-12 11:58 字如其人 阅读(227) 评论(0) 推荐(0)
摘要: 轻重链剖分可以支持 \(O(n \log n)\) 预处理,\(O(\log^2n)\) 修改/查询树的一条链的信息,\(O(\log n)\) 修改/查询一个子树的信息。 由于基于线段树维护被剖开的链,轻重链剖分维护的信息必须是能用线段树来合并的。 #####轻重链剖分划分链的原则: 对于一个非叶 阅读全文
posted @ 2021-11-12 09:38 字如其人 阅读(111) 评论(0) 推荐(0)