后缀数组 定义 $S$:需要处理的字符串,长度为 $len$ $suf_i$:字符串$S$中下标为 $i \sim len$ 的连续子串(即后缀) $rank_i$:$suf_i$在所有后缀中的排名 $SA_i$:后缀数组,排名为$i$的后缀在原串中的位置,满足 $suf_{SA_1} 0 \end ...
分类:
编程语言 时间:
2020-01-05 22:25:49
阅读次数:
125
前言 这比后缀数组难啊。 但似乎其实我并不觉得比sa好用。 很难懂,本来看了一天的证明现在屁都没剩,事实证明打板子才是对的。 应用 很多,但我都不会。 求第K大 本质不同的子串 求排名 多个串求最长公共串 所以我为什么要写总结啊喂。 #include<bits/stdc++.h> using nam ...
分类:
其他好文 时间:
2019-12-28 21:04:38
阅读次数:
62
T1:Sandy的卡片 做这道题时对$height[]$理解不深刻,导致一晚上没$A$掉这道题 显然是把差值当成字符数组,把串连起来处理出$height[]$ 之后二分,开一个栈记录存储出现的元素,只要元素个数大于等于$n$即可判断合法 T2:喵星球上的点名 延续上一道题的套路,把名字和询问连成一个 ...
分类:
编程语言 时间:
2019-12-24 10:15:04
阅读次数:
80
fAKeT又来骗流量了(好像以前也没骗到 后缀数组好难啊。。。。。。 推荐博客:%%%DeepinC 这篇讲解除了太过详细以外都挺好 然后照例放题解包。 裸考后缀数组的题很少,大部分的题都是用后缀数组求出height数组,然后再结合各种各样的数据结构。 以下将height简称为h 相似子串 还是稍裸 ...
分类:
编程语言 时间:
2019-12-23 22:25:05
阅读次数:
98
A.Sandy的卡片 将所有差分之后串连起来,求$height$,二分答案转化为是否存在一段连续的区间使得这个区间中的$height$全部大于二分的值并且覆盖所有串。 B.喵星球上的点名 这题做法非常多。。。第一次用AC自动机暴力水过,顺便颓了题解,然后现在又做了一边就知道标签了。。 比较方便的做法 ...
分类:
编程语言 时间:
2019-12-23 20:52:16
阅读次数:
91
串的主分支-字符串 字符串主要用于编程,概念说明、函数解释、用法详述见正文, 这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的, 如s=“abcdefghij”,则s[1]=“b”,s[9]="j",而字符串的零位正是它的长度,如s[0]=10, 这可以给我们提供很多方 ...
分类:
其他好文 时间:
2019-12-22 14:28:41
阅读次数:
153
首先,height[i]-k+1 很好理解把,他是说明目前这对后缀中不小于k的公共子串个数。 题解说用单调栈维护,为什么要用单调栈维护呢?因为时间复杂的可以大大降低。 怎么个降低方法呢? 在之前学习lcp(就是height数组)的时候,肯定接触过这样一个问题,就是从i开始的后缀字符串跟从j开始的后缀 ...
分类:
编程语言 时间:
2019-12-11 00:25:25
阅读次数:
78
题意,给出两个字符串,给一个k,求出满足a的字串与b的子串完全一样的长度 =k的所有情况的数量。 翻译一下题意就是求所有后缀中,lcp =k的即可。 我们拼接两个字符串,中间用不出现的字符隔开即可。 然后就是如何求解的问题。 我们知道lcp(i,j)=min(height[i+1],....,hei ...
分类:
编程语言 时间:
2019-12-03 23:10:23
阅读次数:
66
巨佬博客: https://www.cnblogs.com/zwfymqz/p/8413523.html #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e6+10; int n,M,sa ...
分类:
编程语言 时间:
2019-11-04 19:38:05
阅读次数:
85
在实验报告和电子学/大物里扑腾的时候总会怀念以前学oi的时候……现在只有每周数学兴趣小组能感受到那种单纯的快乐了。以前很多快乐的点点滴滴现在想起来还很生动,想趁着没忘先记下来。 小学 TODO 初中 TODO 高一 上了高一之后很快来了一次noip。查了一下当时的成绩,是340,比初三还差。 刚上高 ...
分类:
其他好文 时间:
2019-11-02 10:10:17
阅读次数:
121