码迷,mamicode.com
首页 > 编程语言 > 详细

后缀数组1

时间:2019-12-23 20:52:16      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:主席树   第一次用   二分   比较   覆盖   并且   二分答案   字符   很多   

A.Sandy的卡片

  将所有差分之后串连起来,求$height$,二分答案转化为是否存在一段连续的区间使得这个区间中的$height$全部大于二分的值并且覆盖所有串。

B.喵星球上的点名

  这题做法非常多。。。第一次用AC自动机暴力水过,顺便颓了题解,然后现在又做了一边就知道标签了。。

  比较方便的做法是后缀数组+莫队,将所有串连在一起之后对于每个点名串的起始点二分求出一段区间,使这段区间中的$height$全部大于等于这个点名串长度,之后可以转化为区间数颜色问题,可以用很多方法,然而莫队可以在数颜色的同时顺便维护出第二问,所以比较好打。

C.字符串

  $height$对长度取min让我们非常不爽,所以二分答案去掉长度的限制,然后仍然二分出包含$rk[c]$的一段连续区间,使$height$大于等于二分长度,主席树检验当前二分区间是否有在这个范围内的$rk$即可。

D.差异

  求出$height$数组,用单调栈求出每个$height$作为最小值的区间,累加答案即可。

E.相似子串

  一个结论:一个排名为i的后缀能够提供的本质不同子串数:$n-sa[i]-height[i]+1$,并且这些子串的排名按照后缀的排名递增。应该不难理解。

  于是可以二分出第$k$个子串的位置,求$lcp$,$lcs$就完了。

F.品酒大会

  几乎和差异一毛一样。。。就是多了个最大权值,$ST$表查一下就完了。

后缀数组1

标签:主席树   第一次用   二分   比较   覆盖   并且   二分答案   字符   很多   

原文地址:https://www.cnblogs.com/hzoi-cbx/p/12088033.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!