题目大意:找出至少出现K次的子串的最长长度。 题目分析:二分枚举长度x,判断有没有最长公共前缀不小于x的并且连续出现了至少k次的有序子串区间。 代码如下: ...
分类:
编程语言 时间:
2016-10-13 02:08:11
阅读次数:
199
Description 给出两个字符串,求最长公共子串. Sol SAM. 这题随便做啊...后缀数组/Hash+二分都可以. SAM就是模板啊...直接在SAM上跑就行,没有了 \(go[w]\) 就往 \(par\) 跳. 每走一步统计一下答案. Code ...
分类:
其他好文 时间:
2016-10-12 22:21:56
阅读次数:
137
题目大意:给一个整数序列,找出最长的连续变化相同的、至少出现两次并且不相重叠一个子序列。 题目分析:二分枚举长度进行判定。 代码如下: ...
分类:
编程语言 时间:
2016-10-12 21:50:49
阅读次数:
179
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3948 题意:给定一个字符串,求字符串本质不同的回文子串个数。 思路:主要参考该篇解题报告 先按照manacher的构造方法改造一遍串,然后跑一遍manacher。求出以i为中心的最长回文串长度p[i]。 ...
分类:
编程语言 时间:
2016-10-12 14:09:06
阅读次数:
251
题意:UVU形式的串的个数,V的长度规定,U要一样,位置不同即为不同字串 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=&problem=1770 题解 ...
分类:
编程语言 时间:
2016-09-29 18:08:34
阅读次数:
228
这题曾经用sam打过,现在学sa再来做一遍。 基本思路:计算A所有的后缀和B所有后缀之间的最长公共前缀。 分组之后,假设现在是做B的后缀。前面的串能和当前的B后缀产生的公共前缀必定是从前往后单调递增的,每次与h[i]取min时必定将栈尾一些长的全部取出来,搞成一个短的。 所以就开一个栈,栈里存的是长 ...
分类:
编程语言 时间:
2016-09-28 22:03:44
阅读次数:
227
[http://poj.org/problem?id=3261] (题目链接) 后缀数组论文题,感觉分组思想可能会有大用。 题意:给出n个数和k,求在给出的数中,最长的出现至少k次的可重叠子串。 solution 果断后缀数组,求出sa[],height[],rank[]。二分答案,每次判断长度mi ...
分类:
其他好文 时间:
2016-09-28 16:05:04
阅读次数:
162
[http://poj.org/problem?id=2774] (题目链接) 第一次用后缀数组,感觉有点神。。。才发现原来sa[0]是没用的。。 题意:给出两个只包含小写字母的字符串,求出最长连续公共子串。 solution 将两个字符串合并为一个,并用分隔符隔开。之后跑后缀数组,求出height ...
分类:
其他好文 时间:
2016-09-28 16:03:16
阅读次数:
213
题意:求不同回文串的个数 n<=10^5 题解: 先按照manacher的构造方法改造一遍串,然后跑一遍manacher。 如ababa--> $#a#b#a#b#a#@ 然后跑一遍后缀数组。 对于一个后缀sa[i]~cl(cl为字符串的总长),我们本来是要加上以sa[i]为中心的回文串的个数p[s ...
分类:
编程语言 时间:
2016-09-27 15:05:42
阅读次数:
156
题意:求n个串的最长公共子串,子串出现在一个串中可以是它的反转串出现。总长<=10^4. 题解: 对于每个串,把反转串也连进去。二分长度,分组,判断每个组。 这一题我曾经用kmp暴力水过。。贴一下代码 ...
分类:
编程语言 时间:
2016-09-26 14:44:43
阅读次数:
179