LCS Longest Common Substring Description 给两个长度$\le 250000$的小写字母串, 求最长公共子串. Solution 子串就是SAM了. 对其中一个建出SAM, 另一个在上面跑, 如果可以转移, 就直接转移, 长度加一, 否则跳父亲到可以转移, 自然 ...
分类:
其他好文 时间:
2018-11-22 00:31:01
阅读次数:
251
题目传送门 题目大意: 给出m个1-n的全排列,问这m个全排列中有几个公共子串。 思路: 首先单个的数字先计算到答案中,有n个。 然后考虑多个数字,如果有两个数字相邻,那么在m个串中必定都能找到这两个数字并且位置相邻。那么我们枚举1-n所有的数字,比如先枚举p1是1,那p2就是在全排列1中p1后面的 ...
分类:
其他好文 时间:
2018-11-12 17:50:19
阅读次数:
185
字符串小朋友结交了很多好朋友,他们大多都很乐于助人,帮助字符串解决他的问题 一.字符串哈希 字符串渴望和整数交好朋友,哈希是一个连接字符串和整数之间的媒介,他可以把字符串和整数相互匹配。哈希是多少?当然这个是要做题的人自己来设置的。 求一个字符串前缀哈希的公式是:hash【i】=(1ll *hash ...
分类:
其他好文 时间:
2018-10-18 10:53:46
阅读次数:
141
最长公共子串问题: 给定两个字符串,求出它们之间最长的相同子字符串的长度。 暴力解法思路: 1.以两个字符串的每个字符为开头,往后比较,这样就会需要两层循环 2.两层循环内部的比较方式,也是一层循环,以当前字符为起点,往后遍历比较,直到有不同就跳出这次循环,记录下相同子字符串的长度 3.以最长的那次... ...
分类:
编程语言 时间:
2018-10-18 01:21:05
阅读次数:
177
题意:给出s,t两个字符串,求最长公共子串的长度 思路:首先二分答案x,预处理出s中长度为x的子串哈希值并排序,在t中枚举起点,二分查找t[i...i+x]的哈希值 二分查找直接用binary_search()函数 复杂度其实是nlog方 ...
分类:
其他好文 时间:
2018-10-01 01:10:48
阅读次数:
177
一.字符串公共子串 1.poj2774Long Long Message 要求尽量相同,那么将各个子串连在一起用‘#’连接,查最长height,判一下sa位置就好了 代码: 2.可重复可不对齐公共子串个数。 同理,在两个字符串中间加一个‘#’连在一起。 查询hgt,显然,小于hgt的值都能取到,那么 ...
分类:
编程语言 时间:
2018-10-01 01:04:36
阅读次数:
159
后缀数组 代码 注意由于h数组的定义,我们需要标记为 的部分。 最长公共子串问题 ( "hiho1415" ) 将两个子串拼接起来,用 分隔,那么两个串的最长公共子串就是保证 和`sa[i 1] h[i]`。 连续重复次数最多的子串 ( "hiho1419" ) 枚举子串长度 和重复起点 ,计算重复 ...
分类:
编程语言 时间:
2018-09-02 18:45:56
阅读次数:
167
要求:求两个字符串的最长公共子串,如“abcdefg”和“adefgwgeweg”的最长公共子串为“defg”(子串必须是连续的) 总觉得这题,输出结果和题意不相符合,结果2,是不是把B序列翻转,求出两者最长公共子串 ...
分类:
编程语言 时间:
2018-08-28 00:46:41
阅读次数:
214
1、最长的重复子串 寻找一个字符串中最长的重复子串 最大后缀方法思路: 1. 用字符串指针数组保存用户输入的字符串的所有后缀字符串; 2. 将后缀字符串集合进行排序; 3. 比较相邻字符串的公共子串长度,找到长度最大值,保存相应字符串即为所求 空间复杂度:求长度为n的字符串的后缀,需要O(n)的空间 ...
分类:
其他好文 时间:
2018-08-27 12:46:32
阅读次数:
165
题意: 给定两个字符串A 和 B, 求长度不小于 k 的公共子串的个数(可以相同) 分两部分求和sa[i-1] > len1 sa[i] < len1 和 sa[i-1] < len1 sa[i] > len1 ...
分类:
其他好文 时间:
2018-08-18 11:31:35
阅读次数:
131