diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2012/WC2012\351\231\210\347\253\213\346\235\260\345\220\216\347\274\200\350\207\252\345\212\250\346\234\272\350\256\262\347\250\277.ppt" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2012/WC2012\351\231\210\347\253\213\346\235\260\345\220\216\347\274\200\350\207\252\345\212\250\346\234\272\350\256\262\347\250\277.ppt" new file mode 100644 index 0000000..2520dc5 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2012/WC2012\351\231\210\347\253\213\346\235\260\345\220\216\347\274\200\350\207\252\345\212\250\346\234\272\350\256\262\347\250\277.ppt" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2012/\350\214\203\346\265\251\345\274\272-wc2012\350\260\210\350\260\210\345\220\204\347\247\215\346\225\260\346\215\256\347\273\223\346\236\204.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2012/\350\214\203\346\265\251\345\274\272-wc2012\350\260\210\350\260\210\345\220\204\347\247\215\346\225\260\346\215\256\347\273\223\346\236\204.pdf" new file mode 100644 index 0000000..dd83274 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2012/\350\214\203\346\265\251\345\274\272-wc2012\350\260\210\350\260\210\345\220\204\347\247\215\346\225\260\346\215\256\347\273\223\346\236\204.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/2019NOI\345\206\254\344\273\244\350\220\245\351\227\256\351\242\230\345\217\212\347\255\224\346\241\210.doc" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/2019NOI\345\206\254\344\273\244\350\220\245\351\227\256\351\242\230\345\217\212\347\255\224\346\241\210.doc" new file mode 100644 index 0000000..4efb3ba Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/2019NOI\345\206\254\344\273\244\350\220\245\351\227\256\351\242\230\345\217\212\347\255\224\346\241\210.doc" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/intro-qc.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/intro-qc.pdf" new file mode 100644 index 0000000..98b6a94 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/intro-qc.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/\345\210\206\345\270\203\345\274\217\347\250\263\346\200\201\350\257\204\346\265\213\347\263\273\347\273\237\344\270\255\346\234\237\346\212\245\345\221\212.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/\345\210\206\345\270\203\345\274\217\347\250\263\346\200\201\350\257\204\346\265\213\347\263\273\347\273\237\344\270\255\346\234\237\346\212\245\345\221\212.pdf" new file mode 100644 index 0000000..48a1104 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/\345\210\206\345\270\203\345\274\217\347\250\263\346\200\201\350\257\204\346\265\213\347\263\273\347\273\237\344\270\255\346\234\237\346\212\245\345\221\212.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/\347\224\237\346\210\220\345\207\275\346\225\260\345\217\212\345\205\266\345\272\224\347\224\250\346\211\223\345\215\260\347\250\277.ppt" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/\347\224\237\346\210\220\345\207\275\346\225\260\345\217\212\345\205\266\345\272\224\347\224\250\346\211\223\345\215\260\347\250\277.ppt" new file mode 100644 index 0000000..ef6d751 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/\347\224\237\346\210\220\345\207\275\346\225\260\345\217\212\345\205\266\345\272\224\347\224\250\346\211\223\345\215\260\347\250\277.ppt" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/\350\257\204\346\265\213\347\263\273\347\273\237\345\211\226\346\236\220\344\270\216\351\200\211\346\211\213\345\217\202\350\265\233\347\255\226\347\225\245-\350\257\276\344\273\266.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/\350\257\204\346\265\213\347\263\273\347\273\237\345\211\226\346\236\220\344\270\216\351\200\211\346\211\213\345\217\202\350\265\233\347\255\226\347\225\245-\350\257\276\344\273\266.pdf" new file mode 100644 index 0000000..cce1add Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d1/\350\257\204\346\265\213\347\263\273\347\273\237\345\211\226\346\236\220\344\270\216\351\200\211\346\211\213\345\217\202\350\265\233\347\255\226\347\225\245-\350\257\276\344\273\266.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/TrivialStrTechniques.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/TrivialStrTechniques.pdf" new file mode 100644 index 0000000..9fbb59c Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/TrivialStrTechniques.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/ioi2018-1&acm2018.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/ioi2018-1&acm2018.pdf" new file mode 100644 index 0000000..f3a52a8 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/ioi2018-1&acm2018.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/Retroactive Data Structures.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/Retroactive Data Structures.pdf" new file mode 100644 index 0000000..fe0cf87 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/Retroactive Data Structures.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/The Runs Theorem and Lyndon Tree.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/The Runs Theorem and Lyndon Tree.pdf" new file mode 100644 index 0000000..87a4190 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/The Runs Theorem and Lyndon Tree.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/The Runs Theorem and Lyndon Tree.tex" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/The Runs Theorem and Lyndon Tree.tex" new file mode 100644 index 0000000..1292abe --- /dev/null +++ "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/The Runs Theorem and Lyndon Tree.tex" @@ -0,0 +1,308 @@ +\documentclass{beamer} + +\usepackage{xeCJK} +\usepackage{algorithm} +\usepackage{algorithmic} + +\setCJKmainfont[BoldFont = {黑体}]{宋体} +\setlength{\parindent}{22pt} + +\usetheme{CambridgeUS} +\usefonttheme{serif} + +\title{The Runs Theorem and Lyndon Tree} +\author{杨骏昭、徐翊轩、陈孙立} +\institute{NFLS、SCZ} + +\begin{document} + +\begin{frame} + \titlepage +\end{frame} + +\begin{frame}{Contents} + \tableofcontents +\end{frame} + +\section{Runs and The Runs Theorem} + +\subsection{Preliminaries} + +\begin{frame}{Basic Definitions} + \par \textbf{字符串:}令$\Sigma$为一个有限的有序字符集,一个$\Sigma*$中的元素被称为字符串。我们将字符串$s$的长度表示为$|s|$,定义空串$\epsilon$的长度为0。 + \pause + \par \textbf{前缀、子串、后缀:}对于字符串$s=xyz$,$x,y,z$分别被称为$s$的一个前缀、子串、后缀。对于$s$的一个前缀$x$,若$x\ne s$,则称$x$是$s$的一个严格前缀,后缀同理。我们用$s[i]$表示字符串$s$的第$i$个字符$(1\leq i\leq |s|)$,用$s[i...j]$表示第$i$个字符和第$j$个字符中间的字符形成的子串$(1\leq i\leq j\leq |s|)$,定义$s[i...j]=\epsilon\ (i>j)$。 + \pause + \par \textbf{Period:}我们称整数$p$是字符串$s$的period,当且仅当对于任意$1\leq i\leq|s|-p$,$s[i]=s[i+p]$均成立。 + \pause + \par \textbf{Beg(I):}对于区间集合$I$,定义$Beg(I)$表示$I$中所有区间的起始端点组成的集合。 +\end{frame} + +\subsection{Runs and Lyndon Words} + +\begin{frame}{Runs} + \par \textbf{定义1\ (Runs):}令字符串$w$的长度为$n$,三元组$r=(i,j,p)$被称为字符串$w$的一个run,当且仅当$w[i...j]$最小的period\ $p$满足$2p\leq |w[i...j]|$,并且该周期性质不可以再向左右延伸,即$i=1$或$w[i-1]\ne w[i+p-1]$,并且$j=n$或$w[j+1]\ne w[j-p+1]$。实数$\frac{j-i+1}{p}$被称为$r$的指数。 + \pause + \par \textbf{一些关于Runs的符号:}我们用$Runs(w)$来表示$w$中所有的run构成的集合;$\rho(n)$表示长度为$n$的字符串中至多含有的run的个数;$\sigma(n)$表示长度为$n$的字符串中所有run的指数和的最大值。 + \pause + \par \textbf{字典序:}我们用$<$来表示一个$\Sigma$上的全序关系,并以此定义$\Sigma*$上的字典序关系$<$。 +\end{frame} + +\begin{frame}{Lyndon Words} + \par \textbf{定义2\ (Lyndon Word):}非空字符串$w\in\Sigma*$被称为一个关于$<$的Lyndon Word,当且仅当$wi)$。 + \pause + \par \textbf{证明:}令$k=max\{k'\ |\hat{w}[k']\ne \hat{w}[i],k'>i\}$,令$\ell\in\{0,1\}$满足$\hat{w}[k]<_{\ell}\hat{w}[i]$,由\textbf{引理3},$l_{\ell}(i)=[i...i]$,且$l_{\bar{\ell}}(i)=[i...j]\ (j\geq k>i)$。 +\end{frame} + +\begin{frame}{Proof} + \par \textbf{引理7:}令$r=(i,j,p)$为长度为$n$的字符串$w$中任意的一个run,那么,有且仅有一个$\ell\in\{0,1\}$满足$\hat{w}[j+1]<_{\ell}\hat{w}[j+1-p]$。所有$r$的关于$<_{\ell}$的Lyndon Root\ $\lambda=[i_{\lambda}...j_{\lambda}]$都与$l_{\ell}(i_{\lambda})$相等。 + \pause + \par \textbf{证明:}由$r$的定义,$\hat{w}[j+1]\ne\hat{w}[j+1-p]$,因此有且仅有一个$\ell\in\{0,1\}$满足$\hat{w}[j+1]<_{\ell}\hat{w}[j+1-p]$。令$\lambda=[i_{\lambda}...j_{\lambda}]$为$r$的关于$<_{\ell}$的一个Lyndon Root,由\textbf{引理3},$[i_{\lambda}...j_{\lambda}]=l_{\ell}(i_{\lambda})$。 + \pause + \par 对于字符串$w$中任意的一个run\ $r=(i,j,p)$,令$B_r=\{\lambda=[i_{\lambda}...j_{\lambda}]|\lambda$为$r$的关于$<_{\ell}$的一个Lyndon Root且$i_{\lambda}\ne i\}$,其中$\ell\in\{0,1\}$满足$\hat{w}[j+1]<_{\ell}\hat{w}[j+1-p]$。即$B_r$表示所有$r$的关于$<_{\ell}$的Lyndon Root构成的集合,但要除去开头位置$i$处开始的Lyndon Root(如果它存在的话)。有$|Beg(B_r)|=|B_r|\geq \lfloor e_r-1\rfloor\geq 1$,其中$e_r$为$r$的指数。 +\end{frame} + +\begin{frame}{Proof} + \par \textbf{引理8:}对于字符串$w$的两个不同的run\ $r,r'$,$Beg(B_r)\cap Beg(B_{r'})$为空。 + \pause + \par \textbf{证明:}考虑反证法,假设存在$i\in Beg(B_r)\cap Beg(B_{r'})$,并且$\lambda=[i...j_{\lambda}]\in B_r$,$\lambda'=[i...j_{\lambda'}]\in B_{r'}$。令$\ell\in\{0,1\}$满足$\lambda=l_{\ell}(i)$,由于$\lambda\ne \lambda'$,有$\lambda'=l_{\bar{\ell}}(i)$。由\textbf{引理6},$\lambda$和$\lambda'$中有且只有一个为$[i...i]$。我们不失一般性地假设$\lambda=[i...i]$,那么$j_{\lambda'}>i$。由于$w[i...j_{\lambda'}]$为一个Lyndon Word,有$w[i]\ne w[j_{\lambda'}]$。由$B_r$和$B_{r'}$的定义,$r$和$r'$的开始位置均小于$i$,这意味着$w[i-1]=w[i]$(由$r$的周期性),并且$w[i-1]=w[j_{\lambda'}]$(由$r'$的周期性)。因此我们得到了一对矛盾的结论,假设不成立。 +\end{frame} + +\begin{frame}{Proof} + \par \textbf{引理8}表明,任意的一个run\ $r$可以被赋予一个两两不交的非空位置集合$Beg(B_r)$。并且,由于$1\notin Beg(B_r)$对于任意的一个$r$均成立,有$\sum_{r\in Runs(w)}|B_r|=\sum_{r\in Runs(w)}|Beg(B_r)|\leq |w|-1$。因此,我们可以证明如下定理: + \pause + \par \textbf{定理9:}$\rho(n)e_r-2$,由\textbf{引理8},有$\sum_{r\in Runs(w)}(e_r-2)<\sum_{r\in Runs(w)}\lfloor e_r-1\rfloor\leq\sum_{r\in Runs(w)}|B_r|\leq n-1$。结合\textbf{引理9}中的$|Runs(w)|\leq n-1$,可得$\sum_{r\in Runs(w)}e_r\leq3n-3$。 + \pause + \par 至此,The Runs Theorem证明完毕。 +\end{frame} + +\section{How to compute runs and Lyndon Tree} + +\subsection{The algorithm} +\begin{frame}{How to compute Lyndon Roots} + \par \textbf{引理7}表明,每个run都至少包含一个与$l_{\ell}(i)$相等的Lyndon Root。接下来的算法算出了所有的$l_{\ell}(i)$。 + \pause + \par \textbf{引理11:}对于任意的两个Lyndon Word $u,v$,且$u 1)$开始的最长Lyndon串,那么节点$\alpha$一定是一个右儿子节点。 + \pause + \par $w$的任意一个run的所有Lyndon root都会在$LTree_0(w)$或$LTree_1(w)$中的右儿子节点中出现。这里的$0$或$1$由\textbf{引理7}决定。 +\end{frame} + +\section{Applications of The Runs Theorem} + +\subsection{Two-Period Queries} + +\begin{frame}{Weak Periodicity Lemma} + \par \textbf{引理:}若一个串$|S|$有$p$,$q$两个周期,且$p+q\le|S|$,则$\gcd(p,q)$也是$S$的周期。 + \pause + \par \textbf{证明:}假设$pp$,且它同样包含$\lceil(j-i+1)/2\rceil$这个位置,因此$a_{\ell}$是$\lambda$的祖先。若它的右儿子$\beta=[i_{\beta}...j_{\beta}]\neq\lambda$,则$\beta$也是$\lambda$的祖先。因为$\lambda$和$\beta$都是右儿子,可以得到$i\leq i_{\beta}j$可以发现$S[i_{\lambda}...j_{\beta}]<_{\ell}S[i_{\beta}...j_{\beta}]$,同样与它是Lyndon Word矛盾。 + \par 上述矛盾表明我们的算法是正确的。 +\end{frame} + +\begin{frame}{Two-Period Queries} + \par \textbf{扩展:}更一般的Period Queries需要用到一种叫做基本子串字典的数据结构(Dictionary of Basic Factors),它可以做到$O(|S|\log|S|)$预处理,每次查询$O(\log|S|)$。这一数据结构基于后缀数组的倍增算法,在2017年金策的冬令营讲课中提到。 + \pause + \par 另外,由于Lyndon Tree和后缀数组的笛卡尔树结构相同,维护Lyndon Tree可以转化为维护后缀数组。如果结合后缀平衡树等经典数据结构,可以把Two-Period Queries进行一定程度上的推广(如:树上)。 +\end{frame} + +\subsection{Primitive Squares} + +\begin{frame}{串串划分(简化)\footnote{来源:杨骏昭的集训队互测题}} + \par \textbf{问题:}给定一个串S,求把它划分为若干个循环串的方案数。若一个串$S$的最小周期$p$是$|S|$的真因数,则称$S$为循环串。$|S|\le10^6$ + \pause + \par \textbf{做法:}首先可以设计简单的递推:$f(i)$表示$S[1...i]$的划分方案数。那么有$f(i)=\sum_{j=0}^{i-1}f(j)\cdot[S[i...j]\texttt{是循环串}]$。不过即使我们能快速判断每个串是否是循环串,这个递推的复杂度也是$O(|S|^2)$的。如何优化转移? + \pause + \par 首先,对于每个循环串,显然可以只在最小周期处考虑。我们把状态修改为:$f(i,p)$表示$S[1...i]$的划分,且最后一个划分的最小周期为$p$的方案数。这样,我们的转移就有两种方向:加入一个新的循环串;扩展当前循环串一个周期。为了不重复计数,我们强制新的循环串的最小周期为长度的一半。这个转移可以$O(1)$进行,因此我们只需要计算状态数。 + \pause + \par \textbf{定义:}若串$S$的最小周期为$|S|/2$则称$S$为一个primitive square。注意由于WPL,这样的定义没有问题。 +\end{frame} + +\begin{frame}{串串划分(简化)} + \par \textbf{引理:}若非空串$S,T$满足$SS$是$TT$的前缀,且$2|S|>|T|$,则$|T|-|S|$是$S$的周期。 + \par 此引理画图自证不难。 + \par \textbf{引理:}若非空串$u,v,w$满足$uu$是$vv$的前缀,$vv$是$ww$的前缀,且$uu$是primitive square,则$|u|+|v|\le|w|$。 + \pause + \par \textbf{证明:}若$|w|\ge2|v|\ge|u|+|v|$则已证完。因此假设$|w|<2|v|$,并假设$|u|+|v|>|w|$,则$|w|-|v|$是$u$和$v$的周期。 + \pause + \par 若$2|u|\le|v|$,则$|w|-|v|<|u|$是$uu$的周期,和primitive square的定义矛盾。 +\end{frame} + +\begin{frame}{串串划分(简化)} + \par \textbf{证明:}考虑$2|u|>|v|$的情况。此时$|u|$和$|w|-|v|$都是$v$的周期,由于$u$不是周期串,意味着WPL不能使用在$v$串上,也就是$|u|+|w|>2|v|$。 + \pause + \par 令$w=vs_1$,$u=s_1s_3$,$v=ws_2=s_1s_3s_2$。根据上面的推论,$|s_2|<|s_1|$。考虑串$s_3s_2$,它有周期$|s_2|$。由于$|s_1|$是$u$的周期,可得$s_3s_2$是$u$的前缀,这意味着$|s_3|$也是它的周期。根据WPL,$r=\gcd(|s_2|,|s_3|)$是它的周期。而$|s_2|$本身同时是$u$的周期,因此可得$r$是$u$的周期。 + \pause + \par 接着考虑串$u=s_1s_3$。它的周期有$|s_1|$和$r$,而$r\le|s_3|$,根据WPL,$r'=\gcd(r,|s_1|)$也是$u$的周期。然而$|s_1|$和$|s_3|$都是$r'$的倍数,这表示$uu$也有周期$r'$,矛盾。 + \qed + \pause + \par 引理的一个显然的推论是,一个串$S$中primitive square的个数不超过$O(|S|\log|S|)$。 +\end{frame} + +\begin{frame} + \par 有了之前的引理,最终剩下的问题就是如何找出所有的primitive squares。由于每个primitive square一定属于恰好一个和它的周期对应的run的一部分,我们只要求出所有的run,并对每个run暴力即可。 + \pause + \par 综上,我们得到了一个$O(n\log n)$的做法。不难发现,对于大部分和周期串相关的问题,都可以对每个周期串在最后一个primitive square处考虑并简化状态数。 + \pause +\end{frame} + +\begin{frame} +\begin{figure}[h]%%图片 + \centering + \includegraphics[width=0.7\linewidth]{figures/runtime.png} +\end{figure} + \par 可以发现,primitive square和run是密切相关的,知道一个就能求出另一个。在杨骏昭的题解中给出的是一个不基于Lyndon Word任何性质的做法。而这里的做法的优势在于代码复杂度和用时都较小。 +\end{frame} + +\section{Conclusion} + +\subsection{Summary} + +\begin{frame}{Summary} + \par - Runs and The Runs Theorem - 徐翊轩 + \pause + \par - How to Compute Runs and Lyndon Tree - 杨骏昭 + \pause + \par - Applications of The Runs Theorem - 陈孙立 +\end{frame} + +\begin{frame}{参考文献} + \par \textbf{[1]} Hideo Bannai, Tomohiro I, Shunsuke Inenaga, Yuto Nakashima, Masayuki Takeda, Kazuya Tsuruta, \emph{The “Runs” Theorem} + \par \textbf{[2]} Maxime Crochemore, Lu´ıs M. S. Russo, \emph{Cartesian trees and Lyndon trees} +\end{frame} + +\subsection{Thanks} + +\begin{frame}{Thanks} + \par 谢谢大家。 +\end{frame} + +\end{document} diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/figures/algorithm.png" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/figures/algorithm.png" new file mode 100644 index 0000000..72bdba9 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/figures/algorithm.png" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/figures/example.png" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/figures/example.png" new file mode 100644 index 0000000..71dea9a Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/figures/example.png" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/figures/runtime.png" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/figures/runtime.png" new file mode 100644 index 0000000..27d281a Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/runs/figures/runtime.png" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/\346\265\205\350\260\210\345\233\276\347\232\204\350\276\271\346\237\223\350\211\262(\351\253\230\345\230\211\347\205\212).pptx" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/\346\265\205\350\260\210\345\233\276\347\232\204\350\276\271\346\237\223\350\211\262(\351\253\230\345\230\211\347\205\212).pptx" new file mode 100644 index 0000000..3a14a70 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/\346\265\205\350\260\210\345\233\276\347\232\204\350\276\271\346\237\223\350\211\262(\351\253\230\345\230\211\347\205\212).pptx" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/\347\256\200\345\215\225\347\232\204\350\277\236\347\273\255\346\256\265\346\225\260\346\215\256\347\273\223\346\236\204_\350\220\245\345\221\230\344\272\244\346\265\201_CommonAnts.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/\347\256\200\345\215\225\347\232\204\350\277\236\347\273\255\346\256\265\346\225\260\346\215\256\347\273\223\346\236\204_\350\220\245\345\221\230\344\272\244\346\265\201_CommonAnts.pdf" new file mode 100644 index 0000000..f028f7e Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\344\272\244\346\265\201/\347\256\200\345\215\225\347\232\204\350\277\236\347\273\255\346\256\265\346\225\260\346\215\256\347\273\223\346\236\204_\350\220\245\345\221\230\344\272\244\346\265\201_CommonAnts.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\345\205\267\344\275\223\346\225\260\345\255\246\351\200\211\350\256\262.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\345\205\267\344\275\223\346\225\260\345\255\246\351\200\211\350\256\262.pdf" new file mode 100644 index 0000000..9e98eeb Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d2/\345\205\267\344\275\223\346\225\260\345\255\246\351\200\211\350\256\262.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d3/\345\233\275\345\244\226\351\200\211\346\213\224\350\265\233\351\242\230\351\200\211\350\256\262\344\270\216IOI2018 Day2\350\256\262\350\247\243\357\274\210\344\270\200\345\240\206bug\347\211\210\357\274\211.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d3/\345\233\275\345\244\226\351\200\211\346\213\224\350\265\233\351\242\230\351\200\211\350\256\262\344\270\216IOI2018 Day2\350\256\262\350\247\243\357\274\210\344\270\200\345\240\206bug\347\211\210\357\274\211.pdf" new file mode 100644 index 0000000..d0bee4d Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d3/\345\233\275\345\244\226\351\200\211\346\213\224\350\265\233\351\242\230\351\200\211\350\256\262\344\270\216IOI2018 Day2\350\256\262\350\247\243\357\274\210\344\270\200\345\240\206bug\347\211\210\357\274\211.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d3/\346\250\241\346\213\237\350\264\271\347\224\250\346\265\201\351\227\256\351\242\230.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d3/\346\250\241\346\213\237\350\264\271\347\224\250\346\265\201\351\227\256\351\242\230.pdf" new file mode 100644 index 0000000..89f19dc Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d3/\346\250\241\346\213\237\350\264\271\347\224\250\346\265\201\351\227\256\351\242\230.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d4/instruction_set_elephant.pptx" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d4/instruction_set_elephant.pptx" new file mode 100644 index 0000000..02a505e Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d4/instruction_set_elephant.pptx" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d4/number-theory-easy.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d4/number-theory-easy.pdf" new file mode 100644 index 0000000..3159520 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d4/number-theory-easy.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d4/\347\224\237\346\210\220\345\207\275\346\225\260\357\274\214\345\244\232\351\241\271\345\274\217\347\256\227\346\263\225\344\270\216\345\233\276\347\232\204\350\256\241\346\225\260.pdf" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d4/\347\224\237\346\210\220\345\207\275\346\225\260\357\274\214\345\244\232\351\241\271\345\274\217\347\256\227\346\263\225\344\270\216\345\233\276\347\232\204\350\256\241\346\225\260.pdf" new file mode 100644 index 0000000..18e4e25 Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/d4/\347\224\237\346\210\220\345\207\275\346\225\260\357\274\214\345\244\232\351\241\271\345\274\217\347\256\227\346\263\225\344\270\216\345\233\276\347\232\204\350\256\241\346\225\260.pdf" differ diff --git "a/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/schedule.jpg" "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/schedule.jpg" new file mode 100644 index 0000000..6e64ebf Binary files /dev/null and "b/\345\206\254\344\273\244\350\220\245\350\220\245\345\221\230\344\272\244\346\265\201/2019/wc2019-/schedule.jpg" differ