Input file: master.inOutput file: master.outTime limit: 1 secondsMemory limit: 128 megabytes 所谓最长公共子串,比如串 A: “abcde”,串 B: “jcdkl”,则它们的最长公共子串为串 “cd”,即长 ...
分类:
其他好文 时间:
2017-09-03 18:37:17
阅读次数:
150
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2328 题意: 求 n 个串的字典序最小的最长公共子串 思路: 本题中单个字符串长度不超过 200, 可以暴力枚举一个字符串的所有前缀, 然后用kmp去匹配其他字符串. 我这里是用后缀数组写的. 类似 ...
分类:
编程语言 时间:
2017-09-02 20:02:58
阅读次数:
183
1987: 绚丽的手链 Submit Page Summary Time Limit: 6 Sec Memory Limit: 512 Mb Submitted: 13 Solved: 2 Description 小X的妹妹马上就要过生日了,作为哥哥,小X打算买一些手链送给妹妹。 采购完礼物回到家的 ...
分类:
其他好文 时间:
2017-08-31 19:44:20
阅读次数:
256
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1403 题意: 给出两个字符串, 求他们的最长公共子串 思路: 两个字符串的最长公共子串长度显然就是两个字符串的所有后缀中的最长公共前缀长度. 可以先用一个没有出现的字符(便于后面区分后缀是否属于相同字 ...
分类:
编程语言 时间:
2017-08-29 22:57:53
阅读次数:
206
LCS(new char[]{'a','b','c','d'},new char[]{'b','c','d'}); [0, 0, 0][1, 0, 0][0, 2, 0][0, 0, 3] ...
分类:
其他好文 时间:
2017-08-23 21:45:13
阅读次数:
116
题目描述 查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 输入描述: 输入两个字符串 输出描述: 返回重复出现的字符 示例1 输入 abcdefghijklmnop abcsafjklmnopqrstuvw 输出 jklmnop 查找两个字符串a,b中的最长公共子串。 ...
分类:
其他好文 时间:
2017-08-21 13:34:25
阅读次数:
348
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=6138 【题目大意】 给出一些串,询问第x个串和第y个串的公共子串, 同时要求该公共子串为某个串的前缀。求最长符合要求的答案 【题解】 我们对所有串构建AC自动机,将两个询问串之一在AC自动机上mar ...
分类:
其他好文 时间:
2017-08-21 13:34:17
阅读次数:
121
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6138 题意:给n个串,每次询问x号串和y号串的最长公共子串的长度,这个子串必须是n个串中某个串的前缀 解法1:AC自动机。做法是把n个串建成AC自动机,前缀树中每个节点都当做结尾节点,val赋为trie ...
分类:
其他好文 时间:
2017-08-20 12:34:22
阅读次数:
188
使用矩阵来记录两个子串之间各个字符之间的对应关系。 最长子串:矩阵中数字最大的就是最长子串的长度。若对应位置字符相同,则c[i][j] = c[i-1][j-1] + 1 最长子序列:若对应位置字符相同,则c[i][j] = c[i-1][j-1] + 1,若不同,则max(c[i][j-1],c[ ...
分类:
编程语言 时间:
2017-08-17 18:34:58
阅读次数:
241
主要参考: 算法导论 最长公共子序列LCS(动态规划) 其中,理解递推公式之后,要理解代码中的c数组 是怎么变化的(结合下面这个图的过程,过程为:每一行,从左到右) 该文章中,打印LCS的过程(C语言,包括递归和非递归版本)也容易看懂。 Java版本可以参考:最长公共子串、最长公共子序列的Java实 ...
分类:
其他好文 时间:
2017-08-16 21:44:08
阅读次数:
155