摘要:
最长公共子串...两个字符串连在一起,中间放一个特殊字符隔开。求出height之后,枚举height,看两个后缀是不是分布于两段字符串..如果是,这个值就可以作为答案。取最大值即可。 1 const maxn=200419; 2 var 3 c,h,rank,sa,x,y:array[0..... 阅读全文
摘要:
这是一道神奇的题目..论文里面说得不清楚,其实是这样...如果一个长度为l的串重复多次,那么至少s[1],s[l+1],s[2*l+1],..之中有相邻2个相等...设这时为j=i*l+1,k=j+l,我们这时候借助SA和RMQ O(1)求出:m=lcp(j,k),这时候,重复次数至少ans=m ... 阅读全文
摘要:
当时后缀数组没有好好学...各种应用都没学,这两天好好补,要把罗神的论文好好研究一遍...其实后缀数组真的好神奇!!特别是那个萌萌的height数组!今天终于能有两节完整的晚自修了QAQ...明晚还要去一彩,估计心态又没法像今晚那么稳定了...争取这星期能去复习AC自动机吧...嗯,忽然发现,自己一... 阅读全文
摘要:
求最长回文串。把原串翻转后,加在原串后面,中间插入一个辨别字符。然后求SA,Height。然后枚举每个字母作为回文串中心,分长度为奇数和偶数去讨论:奇数求 suffix(i)和suffix(n-i+1)的最长公共前缀,偶数则求suffix(i)和suffix(n-i+2)(当然,i=1时不成立) 。... 阅读全文
摘要:
求不相同子串个数 该问题等价于求所有后缀间不相同前缀的个数..也就是对于每个后缀suffix(sa[i]),将贡献出n-sa[i]+1个,但同时,要减去那些重复的,即为height[i],故答案为n-sa[i]+1-height[i]的累计。const maxn=1419;var x,y,rank... 阅读全文
摘要:
求重复k次的最长重复子串,解法见罗穗骞大神的后缀数组论文 1 const maxn=100419; 2 3 var 4 x,y,rank,sa,h,s,num,c:array[0..maxn] of longint; 5 n,time:longint; 6 7 functi... 阅读全文
摘要:
上次和黄神两人一合计,干脆我学字符串他学图论,然后两人相互教...但以蒟蒻最近这状态来看,估计会到时候也教不了QAQ 扩展KMP大概是下面这个课件讲的这样 http://wenku.baidu.com/view/8e9ebefb0242a8956bece4b3.html 然后需要注意的是初始化问题... 阅读全文
摘要:
其实作为一名蒟蒻应该是没有资格来说这个的,而下午看了一系列的文章之后,我还是憋不住来写这篇东西。 感谢自家老妈,把这篇文章发到了我的手机上 http://www.d1net.com/fun/316010.html 一开始看到,我也是惊了一下,欧美已经开始工业革命4.0了? 粗略一翻,看到一... 阅读全文
摘要:
作为博客园的第一篇...我都不知道要写什么了 ...其实今天很没状态,就当吐槽吧...嗯,被黄神带去写treap+可持久化线段树,然后在可持久化的删除上面跪了两天,真的是一跪不起。我已经连续多久没有AC一道题了?有时候真心会觉得,学一些东西,到达差不多就应该先放手,一次性钻太深对自己没好处。其实之前... 阅读全文