Lyndon words学习笔记
Lyndon words
定义:
对于一个字符串\(S\),若\(S\)的最小后缀是其本身,则\(S\)为一个\(lyndon\)串;
记为\(S\in L\);
即:
\begin{cases}
minsuf(S)=S\\
S为其本身的\mathbf{严格}最小循环
\end{cases}
\]
所以对于\(lyndon\ words\)有一个性质:
\]
否则就不满足定义;
推论:
\(if\quad u,v\in L\quad and\quad u<v\)
\(\quad then \quad uv\in L\)
证明:理性证明很难受,还是感性理解比较好,
ps:
- \(u'\)为\(u\)的子串;
- \(u\triangleright v\) :\(u\)严格比\(v\)小,且非前缀;
- \(u\sqsubseteq v\) :\(u\)为\(v\)的前缀;
按\(uv\)的后缀\(S\)分为三种情况:
- 当\(S=u'v\)时,
因为 \(u \triangleright u'\);
所以 \(uv\triangleright u'v\);
- \(S=v\) 时,
分为两种情况;
1)\(u\triangleright v\), 那么显然 \(uv<v\);
2)\(u\sqsubseteq v\),则\(v=uv'\)
因为有\(v<v'\)
所以\(uv<uv'\Rightarrow uv<v\) ;
- \(S=v'\)时,
有\(uv<v<v'\);
综上,对于三种情况都有\(uv<S\);
故\(uv\in L\);
证毕.
这样的话,就可以再推导出\(u^av^b\in L\);
(ps:\(u^a\not\in L\))
\(Lyndon\)分解(\(Lyndon\ Faetorization\))
定义:
对于一个串的\(Lyndon\ Faetorization\)记为\(CFL(S)\);
则
\begin{cases}
1. \quad S_i\in L\\
2. \quad S_1\ge S_2 \ge ...\ge S_k
\end{cases}
\]
此分解唯一;
性质:
- \(S_k\)为最长的\(Lyndon\ suffix\)
- \(S_1\)为最长的\(Lyndon\ prefix\)
- \(Sk=minsuf(S)\)
好的后面的就不怎么会了,(或者说我只会感性理解,不知道如何理性证明,口胡)
关于证明和求\(Lyndon\ Faetorization\)的\(Duval\)算法请参考:Lyndon相关——newbielyx
发现我经常套他博客(滑稽
Lyndon words学习笔记的更多相关文章
- Lyndon Word学习笔记
Lyndon Word 定义:对于字符串\(s\),若\(s\)的最小后缀为其本身,那么称\(s\)为Lyndon串 等价性:\(s\)为Lyndon串等价于\(s\)本身是其循环移位中最小的一个 性 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
随机推荐
- 基于Celery在多台云服务器上实现分布式
起源 最近参加公司里的一个比赛,比赛内容里有一项是尽量使用分布式实现项目.因为项目最终会跑在jetsonnano,一个贼卡的开发板,性能及其垃圾.而且要求使用python? 找了很多博客,讲的真的是模 ...
- 没事也来配一个logback
工程下载:https://files.cnblogs.com/files/xiandedanteng/logbackCfg20200115.zip 首先创建一个maven项目,pom.xml如下书写: ...
- 解决 Mac 上 Docker 无法直接 ping 通的问题
解决 Mac 上 Docker 无法直接 ping 通的问题 原文连接 一.背景 Mac os Mojave 10.14.3 Docker Desktop community 2.3.0.4 二.问题 ...
- 【微信小程序】常用组件及自定义组件
(一) 常用标签 组件你可以理解为传统页面开发时候的各种标签,例如 div span 等等,我这里只说一些常用的,这样就能能搭建出一个基本的页面了,但是如果想要更加美观以及拥有更好的体验,就需要 XS ...
- IAR错误Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At least 0xd more bytes needed. The problem occurred while processing the segment 的解决办法
IAR for 8051 IDE version 9.10.1编译阿莫单片机的cc2541程序osal第一节教程出现错误如下 出错的愿意是iar设置错误.所以需修改IAR的设置. 解决办法如下: 即可 ...
- linux下ftp如何使用
linux下ftp可以上传.下载文件 centos7环境: 1.检查是否安装过ftp服务 rpm -qa|grep vsftpd 如果没有输出则表示没有安装过 安装ftp yum -y install ...
- 使用PXE+VNC方式安装CentOS 7
U盘坏了,用个下面的方法安装 安装配置dhcp yum -y install dhcp tftp-server 修改如下,网段改为你自己的网段 vim /etc/dhcp/dhcpd.conf sub ...
- sql中的join
首先准备数据 有以下数据,三张表:role(角色表).hero(英雄表).skill(技能表),我们以英雄联盟的数据做示例 一个hero对应一个role(我们这里暂定) 一个role可以对应多个her ...
- C语言知识点汇集
int main() {// int num; int value; = int num,value; '''同时定义多个变量的方法 但是切记只能是同种类型的''' 都是int 或double等其他类 ...
- hystrix源码之插件
HystrixPlugins 获取并发相关类(HystrixConcurrencyStrategy).事件通知类(HystrixEventNotifier).度量信息类(HystrixMetricsP ...