Link-Cut-Tree 学习笔记
定义链剖分首先我们知道,OI 中能见到的有重链剖分,实链剖分和长链剖分。 重链剖分已经在之前的树链剖分中熟练运用过了,长链剖分不常考,所以这次我们先来看一看实链剖分。 实链剖分:将某一个儿子的连边划分为实边,而连向其他子树的边划分为虚边。 我们发现边的虚实是可以动态变化的,因此可以使用更高级、更灵活的 Splay 来维护每一条由若干实边连接而成的实链,基于这个原理,LCT 才能解决很多的动态...
定义链剖分首先我们知道,OI 中能见到的有重链剖分,实链剖分和长链剖分。 重链剖分已经在之前的树链剖分中熟练运用过了,长链剖分不常考,所以这次我们先来看一看实链剖分。 实链剖分:将某一个儿子的连边划分为实边,而连向其他子树的边划分为虚边。 我们发现边的虚实是可以动态变化的,因此可以使用更高级、更灵活的 Splay 来维护每一条由若干实边连接而成的实链,基于这个原理,LCT 才能解决很多的动态...
Stoer Wagner 算法主要是解决无向图最小割的问题。题目链接给定一张无向图,每一条边都有其花费,求最少能使这张图不连通应割掉的边数。 原作者论文,侵删解题思路首先我们可以使用网络流暴力跑,也就是随机一个源点然后枚举汇点跑最大流那种,但是时间复杂度有点高,上界是 $O(n^3m)$。于是 就有了 Stoer Wagner 算法来解决这个问题。我们先描述一下这个算法的一般流程: 1. $...
输出方案回忆前面我们解决二分图的方法:源点向每个左端节点连一个容量为 $1$ 的弧,每个右侧端点向汇点连一个容量为 $1$ 的弧,原图中的边容量为 $1$;所以说如果我们想获取方案的话我们只需要遍历左端点相连的弧是否满流即可。交叉分组 建图方法显然,每个班级和每个小组都看成一个点。源点连向每个班级一条容量为 $a_i$ 的弧,每个小组连向汇点一条容量为 $b_i$ 的弧。之后对于每一个班级都...
定义首先简要介绍一下 AC 自动机:Aho-Corasick automation,该算法在 1975 年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出 n 个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂 AC 自动机,先得有模式树(字典树)Trie 和 KMP 模式匹配算法的基础知识。KMP 算法是单模式串的字符匹配算法,AC自动机是多...
定义又称单词查找树,字典树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。 实现首先我们以一道例题来看。首先它给出了一个字符串集合,然后每次给出一个字符串询问有多少个字符串的前缀包含它。 如果暴力的话...