摘要: 差分消除加减一个值得影响,貌似r二分上界要设成(n-2)/2?为啥?sa求不可重叠最长重复子串给定一个字符串,求最长重复子串,这两个子串不能重叠。算法分析:这题比上一题稍复杂一点。先二分答案,把题目变成判定性问题:判断是否存在两个长度为 k 的子串是相同的,且不重叠。解决这个问题的关键还是利用hei... 阅读全文
posted @ 2015-04-27 21:17 AutSky_JadeK 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 考虑奇数长度的回文,对于字符串上的每个位置i,如果知道从i开始的后缀和到i为止的前缀反转后的字符串的lcp长度的话,也就知道了以第i个字符为对称中心的最长回文的长度了。因此,我们用在S中不会出现的字符将S和S反转后的字符串拼接起来,得到字符串S',计算S'的sa。于是,从i开始的后缀和到i为止的前缀... 阅读全文
posted @ 2015-04-27 16:53 AutSky_JadeK 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 考虑简化问题:计算一个字符串中至少出现两次的最长子串。答案一定会在sa中相邻两个后缀的lcp中。因为后缀的位置在sa中相距越远,其lcp的长度就越短,这是由于字典序的性质决定的。于是,在s1和s2中间插入字符'\0',然后等价于寻找两个后缀的lcp的最大值,且这两个后缀分属s1、s2。#includ... 阅读全文
posted @ 2015-04-27 14:59 AutSky_JadeK 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 考虑第一次切割,必然切割的是翻转后字典序最小的前缀,伪证:若切割位置更靠前:则会导致第一个数翻转后更靠前,字典序必然更大。若切割位置更靠后,则显然也会导致字典序更大。↑,sa即可对于第二次切割,有结论:将序列分割成两段再分别翻转得到的序列,可以看作是将两个原序列拼接得到的新序列中的某个字串翻转得到的... 阅读全文
posted @ 2015-04-27 11:24 AutSky_JadeK 阅读(158) 评论(0) 推荐(0) 编辑
TVアニメ「Charlotte(シャーロット)」公式サイト TVアニメ「Charlotte(シャーロット)」公式サイト