传送门 算是个模板。 题目说循环,那就再复制一串拼接上。 然后求后缀数组,再搞就可以。 虽然是求后缀,会在后面多一些字符串,然而题目中说的是循环一圈,但是没有影响。 ——代码 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> ...
分类:
编程语言 时间:
2017-06-09 20:16:05
阅读次数:
197
模板题 ——代码 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #define N 100005 5 6 int m = 'z' + 1; 7 int len, buc[N], x[N], y[N], sa[N], ...
分类:
编程语言 时间:
2017-06-09 18:18:16
阅读次数:
234
Long Long Message Time Limit: 4000MS Memory Limit: 131072K Total Submissions: 30427 Accepted: 12337 Case Time Limit: 1000MS Description The little cat ...
分类:
编程语言 时间:
2017-06-06 23:36:09
阅读次数:
348
【BZOJ4199】[Noi2015]品酒大会 题面:http://www.lydsy.com/JudgeOnline/wttl/thread.php?tid=2144 题解:听说能用SAM?SA默默水过~ 本题的实现还是非常简单的,先求出height数组,然后两杯酒'r'相似就等价于二者中间的he ...
分类:
编程语言 时间:
2017-06-06 20:46:50
阅读次数:
249
?? 题意:给定两个字符串A 和B。求最长公共子串。 思路:将两个字符串连接起来中间用一个没出现过的符号切割。 所以答案为满足后缀在不同的串中且height值最大的height值 #include<cstdio> #include<cstring> #include<cmath> #include< ...
分类:
编程语言 时间:
2017-06-05 11:37:34
阅读次数:
248
Codeforces Round #244 (Div. 2)D (后缀自己主动机) (标号为0的节点一定是null节点,不管怎样都不能拿来用,切记切记,以后不能再错了) 这题用后缀自己主动机的话,对后缀自己主动机的非常多性质有足够深刻的理解。没想过后缀数组怎么做。由于不高兴敲。。。。 题意:给出两个 ...
分类:
其他好文 时间:
2017-06-04 14:39:45
阅读次数:
157
Description A substring of a string T is defined as: T( i, k)= TiTi+1... Ti+k-1, 1≤ i≤ i+k-1≤| T|. Given two strings A, B and one integer K, we define ...
分类:
编程语言 时间:
2017-06-03 13:53:40
阅读次数:
249
后缀数组大概就是用后缀排名来搞一些事情,因为字符串中的每一个子串都可看做某一后缀的前缀 可用倍增法求出后缀排名 一、数组意义(对于字符串 s) sa[i]:排名为i的后缀的开头在s中的位置 height[i]:排名为i的后缀和排名为i-1的后缀的LCP(最长公共前缀) c[]:用于基数排序,统计前缀 ...
分类:
编程语言 时间:
2017-06-02 22:07:16
阅读次数:
203
后缀数组sa[i]:i<j,有sa[i]开头的字符串字典序<sa[j]开头字典序。 求后缀数组的方法:倍增{ 按一段排序,倍增至第二段为第二关键字,把他的值搞到桶中,比较。 若两个合并的串前后两段一毛一样,排名设为一样。就这样搞。 } rnk[i]:i为开头的后缀的排名 height数组:KMP的思 ...
分类:
编程语言 时间:
2017-05-29 22:21:37
阅读次数:
216
Given a sequence, {A1, A2, ..., An} which is guaranteed A1 > A2, ..., An, you are to cut it into three sub-sequences and reverse them separately to fo ...
分类:
编程语言 时间:
2017-05-26 23:33:11
阅读次数:
327