• 2024-11-04Lyndon 串
    你说得对,但是这个是\(\Large{\textsf{巨大}}\)浓缩版。非浓缩版作者并没有写完。作者删掉了所有的证明,居心不良。定义:\(S\)是Lyndon串(Lyndonword)当且仅当\(S\)是所有后缀中最小的。也当前仅当\(S\)比所有他的其他cyclic-shift都小。性质:Lyndon串无非空的border。
  • 2024-10-30Lyndon 理论学习笔记
    字符串,太深刻了/kk定义下标从1开始。\(+\)是字符串拼接。\(|s|\)表示\(s\)的长度。\(s_i\)表示\(s\)的第\(i\)个字符。\(s^k\)表示\(k\)个\(s\)拼接的结果。字符串间的大小关系用字典序比较。Lyndon串字符串\(s\)是Lyndon串当且仅当\(s\)小于其
  • 2024-08-04Lyndon Word 小记
    1.定义一个字符串\(S\)被定义为LyndonWord当且仅当其严格小于所有真cyclicshift。LyndonWord的等价定义:是其所有后缀中最小的。2.性质性质1:LyndonWord无\(\text{Border}\)。不妨设\(w\)有\(\text{Border}\),则我们可以表示为\(w=xu=uy\),从而得到\(w
  • 2024-07-24Lyndon 分解 & runs
    万成章在2022年集训队论文《浅谈与Lyndon理论有关的字符串组合问题》中做过详细介绍,由于笔者太菜,这里只做简单介绍,并且不做证明。Lyndon分解Lyndon串:对于字符串\(s\),如果\(s\)的字典序严格小于\(s\)的所有后缀的字典序,我们称\(s\)是Lyndon串。Lyndon分解:串\(s\)的Lyndon分解记
  • 2024-07-22最小表示法
    最小表示法字符串\(S\)的最小表示为与\(S\)循环同构的所有字符串中字典序最小的字符串。一般用于判断两个字符串是否循环同构。只需要都用最小表示,然后判断即可。考虑如何构造。这里oiwiki解释的很清楚。就不做过多解释了。复杂度\(O(n)\)inti=1,j=2,k;while(i<
  • 2024-06-02字符串杂项
    本篇博客还未完成。后续还有一点内容。一些记号约定\(s[i,j]\)表示字符串\(s\)截取下标在\(i,j\)中的字符得到的子串。\(s+t\)表示两个字符(串)\(s,t\)连接的结果。\(s^g\)表示将\(s\)重复\(g\)遍的结果。\(s^r\)表示\(s\)的反串。下文若无特殊说明,字符串下标
  • 2024-05-28Lyndon 串相关知识速记
    LyndonWords一个串为Lyndon串当且仅当其为其所有后缀中字典序最小的.Lyndon分解:将一个串\(w\)分解为若干个字典序单调不增的Lyndon串\(w_1,w_2,\cdots,w_k\)的拼接,每个\(w_i\)为\(w\)的Lyndon因子.可以证明一个串的Lyndon分解是存在且唯一的.引理1:若\(
  • 2024-05-10Lyndon 分解小记
    来个简单的。概念Lyndon串:一个字符串\(s\)被称为Lyndon串,当且仅当\(s\)整个串是所有后缀中严格最小的。例如\(\mathtt{ababb},\\mathtt{abcdefg}\)。Lyndon分解:将字符串\(s\)分解为\(w_1,w_2,...,w_k\),满足\(w_1\gew_2\ge...\gew_k\),并且\(w_1,w_2,..
  • 2024-04-22Lyndon 分解
    作用把一个大字符串分成好多个小字符串这些小字符串的最小后缀,就是其本身求出这些小字符串的右端点下标#include<bits/stdc++.h>usingnamespacestd;chars[5000005];intn,ans;vector<int>a;intmain(){ scanf("%s",s+1); n=(int)strlen(s+1); intx; for(inti=
  • 2024-04-072024.4 做题纪要
    aaaaaaaaaaaaaaaaa大致是在成七集训,虽然挺多都是3月底的不过还是整一下。目录2024.3.30T2简单题2024.4.1T3木棍AGC059EGrid3-coloring2024.4.2T1斩首(Gym104901F)T3战争2024.4.5T3Text2024.4.7CF1707DPartialVirtualTreesCF1874EJellyfishandHack2024.3.30T2
  • 2024-01-11CTSC 2016 香山的树
    题意给定\(n,k\)和Lyndon串\(s_1\),求长度小于等于\(n\)的Lyndon串中,按照字典序排在\(s_1\)后面\(k-1\)名的串\(s_k\),或报告无解。\(1\len\le50,1\lek\le10^{15}\)。Lyndon串:字典序严格小于所有自己真后缀的串题解只需要计数拥有某个给定前缀\(p\)的
  • 2023-08-17字符串学习笔记
    SAM(后缀自动机)待补充Lyndon分解定义:定义一个串是\(\text{Lyndon}\)串,当且仅当此串的最小后缀为此串本身。等价于该串为它所有循环表示中字典序最小的。\(\text{Lyndon}\)分解将任意串\(S\)划分成字符串序列,满足序列中每个串均为\(\text{Lyndon}\)串且每个串字典序
  • 2023-05-03Lyndon 分解
    Lyndon串:\(s<{\rmsuf}'(s)\)的串\(s\)为Lyndon串。引理1:若\(u\)、\(v\)为Lyndon串,\(u<v\),则\(uv\)也为Lyndon串。引理2:若\(uc\)为Lyndon串的前缀,则\(uc'(c'>c)\)为Lyndon串。证明:TODO...求\(s\)的Lyndon分解,考虑增量构造。维护\(t
  • 2023-04-30Lyndon 分解
    现在只会lyndon分解怎么写。所以先放在这里占坑。以后补Runs和LyndonTree相关知识。大量抄pdf和cmd博客。LyndonWord及其相关性质定义:若字符串\(s\)的最小后缀是它本身,则它是一个LyndonWord。LyndonWord没有Border。证明:如果存在,则border作为后缀比
  • 2023-04-25Lyndon 小记
    神秘科技。定义一个串为Lyndon串,当且仅当这个串的最小表示法是它本身。定义一个串的拆分为Lyndon分解,当且仅当每个拆分都是Lyndon串,且\(s_i\geqs_{i+1}\)。求出某个串的Lyndon分解可以用Duval算法,该算法可以\(O(n)\)求出这个串的Lyndon分解。这个算法的流程如
  • 2023-01-13Lyndon Word 与 Lydon 分解
    \(\newcommand\m\mathbf\)\(\newcommand\t\texttt\)\(\text{ByDaiRuiChen007}\)约定:对于两个字符串\(S,T\),用\(ST\)表示将\(T\)接在\(S\)后面得到的字符串(即
  • 2022-11-10【UOJ 494】DNA序列(贪心)(Lyndon分解)
    DNA序列题目链接:UOJ494题目大意给你n个字符串,要你每个都选一段非空前缀按某种顺序拼在一起使得形成的大字符串字典序最小。思路假设如果知道插入的顺序,我们要怎么
  • 2022-10-30【XSY3905】字符串题(lyndon串,构造)
    题面字符串题题解设所有长度不超过\(n\)的串的集合为\(S\)。考虑找到一种方法,能够对一个lyndon串\(A\),直接求出\(A\)的下一个lyndon串。方法如下:先将\(A