首页 > TAG信息列表 > Lyndon

lyndon 分解学习笔记

lyndon 分解学习笔记 定义 lyndon 串 一个字符串,如果他是他的最小后缀,那么他就是 lyndon 串。 还有一种定义是,在他的循环同构里他是字典序最小的那个。 近似 lyndon 串 设 \(t\) 是一个 lyndon 串,\(t^c\) 为 \(t\) 拼接 \(c\) 次,\(t'\) 为 \(t\) 可空前缀,那么 \(t^c + t'\) 为近似

Lyndon 分解

Lyndon 分解 以下所有字符串的大小关系都是对字符串字典序的比较。 定义串 \(S\) 为 Lyndon 串当且仅当 \(S\) 小于其所有不为 \(S\) 的后缀。 该命题等架于 \(S\) 是它的所有循环表示中最小的。 定义串 \(S\) 的 Lyndon 分解为将 \(S\) 分为若干部分 \(S=w_1w_2\dots w_m\) 使得

The Runs Theorem 和 Lyndon Tree 学习笔记

定义 \(\text{Runs}\): 一个 \(\text{run}\) 是一个三元组 \(\text{r}=(l,r,p)\),表示 \(s[l,r]\) 的最小周期为 \(p\),且 \([l,r]\) 区间是极大的,要求 \(2p\leq r-l+1\) 。实数 \(\frac{r-l+1}{p}\) 称为 \(r\) 的指数。\(Runs(w)\) 表示 \(w\) 的 \(runs\) 集合,\(\rho(n)\) 表示长

【JSCPC2021】Reverse the String(Lyndon 理论)

传送门 题意 给定字符串 \(s\),问任意翻转一个区间 \([l,r]\) 后得到的最小字符串。 \(\sum |s| \le 1.5\times 10^6\)。 分析 依次考虑答案第 \(i\) 位能否比 \(s_i\)​​ 小可得:\(l\) 一定是右边有字符比它小的最左位置。因此只需考虑翻一个前缀的情况,可以用二分+哈希比较出最小

【题解】Luogu5420 / UOJ202 / LOJ2991 香山的树 另解

Luogu5420 / UOJ202 / LOJ2991 香山的树 另解 这个题大部分人都是用 KMP 自动机+dp 做的。这里是一个不用 KMP 的做法。 记号 字符集为 \(\Sigma\),假设最小的字母是 \(\mathrm a\),最大的字母是 \(\mathrm z\)。 \(\operatorname{pref}_i\) 表示长度为 \(i\) 的前缀,\(\operatorname

【题解】Luogu5211 / LOJ 2572 / UOJ 296 [ZJOI2017] 字符串

Upd 2020/06/15:优化了 \overline 太丑的问题,添上代码。 ZJOI2017 字符串 前置芝士:Lyndon 分解,Significant Suffixes,线段树,字符串哈希,分块。 如果你会 Significant Suffixes 相关知识,请阅读 [0 Marks & Facts] 后直接跳到后面的 进入正题。 0 Marks & Facts 我们定义两个字符串 \(

【题解】Luogu6656 / LOJ173 模板 Runs

【模板】Runs 题解 润s! By zghtyarecrenj 本文包括:Lyndon Words & Lyndon Array & Runs & Three Squares Lemma。 禁止转载全文,转载部分需要注明出处。 实在太长,已尽量删减( 哇,你古md排版是不是出了点问题 Lyndon tree 是一个非常有趣的东西,但是我现在还没有发现应用,所以先咕着。

【CTSC2016】香山的树(KMP)

传送门 题意 给定 \(n,k\) 和一个长度不超过 \(n\) 的字符串 \(p\)。定义循环串为能表示成 \(q^k(k>1)\) 的串。称一个字符串是 lyndon 串,当且仅当它的最小循环表示是它本身,且它不是循环串。求长度不超过 \(n\) 且字典序大于等于 \(p\) 的所有 lyndon 串中,字典序第 \(k\) 小的那个

Lyndon分解 学习笔记

学习资料 https://blog.csdn.net/qq_36797743/article/details/89191890 例题:

回文自动机与Lyndon分解

回文串 一个字符串中最多只能有 \(O(n)\) 种本质不同的回文串。 证明,考虑增加一个字符最多只会增加一个不同的回文串。 manacher 算法 利用回文扩展回文,均摊 \(O(n)\) 。 例题 用 manacher 求每个前缀的最长回文后缀。 题解 用 manacher 处理出回文串后,利用数据结构维护一下就可以