首页 > TAG信息列表 > 瞎口

【瞎口胡】后缀自动机(SAM)

前言 后缀自动机(Suffix Automaton, SAM)是一个能解决许多字符串相关问题的数学模型。 需要注意的是,自动机不是算法,也不是数据结构,而是一种数学模型。实现同一种自动机的方法不同可能会造成时空复杂度不同。 以下问题都可以在线性时间内通过 SAM 解决: 在另一个字符串中搜索一个字

【瞎口胡】AC 自动机

AC 自动机用来解决多模式串匹配问题。 以下便是一个经典问题: 给定 \(n\) 个模式串 \(S_1,S_2,...,S_n\) 和一个文本串 \(T\)。问有多少个模式串在文本串中出现过。 \(\sum |S_i| \leq 10^6,|T| \leq 10^6\) 考虑对模式串建出 trie。在 trie 的每个节点额外记录一个 fail,表示根到该

【瞎口胡】CDQ 分治

本篇内容将持续更新。 CDQ 分治是一种离线的分治算法。其主要思想是,对于一个规模为 \(n\) 的问题,首先计算 \([1,\left \lfloor \dfrac n2 \right \rfloor],[\left \lfloor \dfrac n2 \right \rfloor+1,n]\) 这两个子问题内部的答案,再计算这两个子问题相互贡献的答案。 一个比较经

【瞎口胡】线段树分治

线段树分治是一种优秀的时间轴分治算法。 例题 1 Luogu P5787 二分图 题意 有一张 \(n\) 个点 \(m\) 条边的无向图,第 \(i\) 条边在 \(x\) 时刻出现 \(y\) 时刻消失,询问时间段 \(1 \sim k\) 这张图是不是二分图。 时间段 \(x\) 的定义是时刻 \(x-1\) 到 \(x\) 这一段时间。 \(1 \le

【瞎口胡】左偏树

本篇内容将持续更新。 左偏树是一种支持 \(O(\log n)\) 合并的堆。 dist 相关 要了解左偏树,首先需要补充一个定义。定义二叉树中一个节点的 \(\operatorname{dist}\) 为其子树中最近的没有左儿子或右儿子的节点(称为「外节点」)到它的距离。根据定义,一个外节点的 \(\operatorname{di

【瞎口胡】整体二分

整体二分是处理多个相似询问的利器。 例题 [POI2011]MET-Meteors 题意 有一个 \(n\) 个节点的环,每个节点都有一个所属国家。共有 \(n\) 个国家,第 \(i\) 个国家的陨石需求量为 \(p_i\)。 现在有 \(k\) 场陨石雨,每次陨石雨会落在 \([l,r]\) 区间内每一个节点上,并使这些节点的陨石数

【瞎口胡】快速傅里叶变换 / FFT

快速傅里叶变换(FFT)是一种在 \(O(n \log n)\) 时间复杂度内求出两个 \(n\) 次多项式乘积的算法。 系数表示法和点值表示法 对于 \(n\) 次多项式 \(f(x)=a_0+a_1x+a_2x^2+\cdots+a_nx^n\),如果我们知道了每一个 \(a_i\),那么这个多项式就唯一确定。于是我们用系数序列 \(a=\{a_0,a_1,a