后缀数组
一些后缀数组方面的编程题
NeverMoreH
^_^
展开
-
poj1743(后缀数组:最长不可重叠子串长度)
链接:http://poj.org/problem?id=1743 题意:给你n个数字,挨个作差,求这n-1个数字的最长不可重叠子串长度。 思路:罗大牛就是6。看了罗牛的后缀数组PDF。这道题是后缀数组的基础题,我们可以二分答案+判定。如何判定?假设我们当前二分的答案是k,我们把后缀按字典序排序,同时按k分组,保证每一组内的所有的height值都>=k。这样,如果存在长度是k的子串,一定会原创 2015-07-25 16:27:01 · 357 阅读 · 0 评论 -
poj3261(求至少出现k次的可重叠的子串的长度)
题意: 给出n和k,n代表数字的个数,k代表你要求至少出现k次的,下面是n个数字,求出在其中至少出现k次的可重叠的子串的长度。 思路: 类似于1743但又不同于1743,思路大体上差不多,二分答案+判定。 还是分组,然后看每组的个数是否大于k就ok了。 代码: #include #include #include #define maxn 20005 int wa原创 2015-07-25 17:18:21 · 525 阅读 · 0 评论 -
hdu5442(2015长春网络赛F题)
题意: 给出一个字符串,只由‘a’~‘z'组成,字符串是一个首尾相接的串。我们要找到一个起点,顺时针或者逆时针的读这个串,找到字典序最大的读法,如果有多种,输出起点坐标小的那个,如果起点坐标一样,输出顺时针的那个。 思路: 把串变成倍长的,反着再处理一次。 坑死我了。。。用罗穗骞的da算法超时,用dc3RE,用了个网上找的,过了。 代码: #include #incl原创 2015-09-17 17:01:15 · 452 阅读 · 0 评论