SA
y_immortal
蒟蒻蒟蒻
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
洛谷2408不同字串个数/SPOJ 694/705 (后缀数组SA)
题目链接 真是一个三倍经验好题啊。 我们来观察这个题目,首先如果直接整体计算,怕是不太好计算。 首先,我们可以将每个子串都看成一个后缀的的前缀。那我们就可以考虑一个一个后缀来计算了。 为了方便起见,我们选择按照字典序来一次插入每个后缀,然后每次考虑当前后缀会产生的新串和与之前插入的串重复的串(这里之所以可以这么考虑,是因为如果他会对后面的串产生重复的话,那么会在后面那个串加入的时候计算的) 那么我...原创 2018-12-12 16:24:13 · 204 阅读 · 0 评论 -
洛谷4248 AHOI2013差异 (后缀数组SA+单调栈)
题目链接 补博客! 首先我们观察题目中给的那个求ansansans的方法,其实前两项没什么用处,直接forforfor一遍就求得了 for (int i=1;i<=n;i++) ans=ans+i*(n-1); 那么我们考虑剩下的部分应该怎么求解! 首先这里有一个性质。对于任意两个后缀i,ji,ji,j,他们的lcplcplcp长度是他们对应的rankrankrank之间的heighthe...原创 2018-12-12 19:20:25 · 179 阅读 · 0 评论 -
洛谷3181 HAOI2016找相同字符 (SA+单调栈)
题目链接 QWQ好自闭的题目! 一个题解都看不懂!!!! 貌似这种求ansansans的代码实现是全网第一个? QWQ 总之我没有见过类似的啊。 首先这个题,我们这么考虑。 由于是两个串,很自然的想到把第二个串拼到第一个串的后面,然后中间添加一个非法字符。 那么我们应该怎么求呢? 首先想一个复杂度不是那么优秀的做法。 我们可以直接暴力枚举任意两个后缀,一个属于A串,另一个属于B串,他们的lcplc...原创 2018-12-13 15:31:25 · 199 阅读 · 2 评论 -
SPOJ1811 LCS - Longest Common Substring (SA)
题目链接 一道好题啊! QWQ 性质可以直接参考的我的后缀数组学习笔记! 首先,两个串的题,第一反应肯必定是把两个串接起来,然后中间加入一个非法字符。 那么实际上我们就是求一个最大的lcplcplcp满足一端属于A,另一端属于BBB 直接对符合要求的heightheightheight求个maxmaxmax就可以了 #include<iostream> #include<cstd...原创 2018-12-13 16:59:53 · 256 阅读 · 0 评论 -
洛谷3763 TJOI2017 DNA (SA+RMQ)
题目链接 首先一看到这个题,由于是两个串,所以一定是第一步把两个串拼起来,然后原创 2018-12-14 16:55:18 · 195 阅读 · 0 评论 -
洛谷3809 SA模板 后缀数组学习笔记(复习)
其实SA这个东西很久之前就听过qwq 但是基本已经忘的差不多了 嘤嘤嘤 QWQ感觉自己不是很理解啊 所以写不出来那种博客 QWQ只能安利一些别人的博客了 小 老 板 真的是讲的非常好 不要在意名字 orz,膜拜他们 顺便弄上自己的代码(里面有一些需要注意的地方) #include&amp;amp;lt;iostream&amp;amp;gt; #include&amp;amp;lt;cstdio&amp;amp;gt; #include&原创 2018-12-11 15:48:00 · 212 阅读 · 3 评论 -
洛谷4051 JSOI2007 字符加密(SA)
题目链接 真是一道良好的SA模板题 首先,由于涉及到从左边移动到右边这个过程,我们不妨直接把字符串复制一遍,接在后面。 然后直接构造后缀数组,按排名从小到大,枚举所有的位置,如果这个后缀的起始点是在原串中的,那么就输出当前后缀的七十点往后第n个字符,就能直接解决了 #include<iostream> #include<cstdio> #include<algorit...原创 2018-12-11 16:45:43 · 205 阅读 · 0 评论
分享