【题目链接】 http://poj.org/problem?id=2774 【题目大意】 求最长公共子串 【题解】 将两个串中间嵌一个字符相连,求一遍后缀数组 如果排名相邻的两个后缀的开端是分属于两个串的, 那么他们的最长公共前缀就可以用来更新答案 【代码】 ...
分类:
编程语言 时间:
2016-11-16 01:43:33
阅读次数:
147
【题目链接】 http://poj.org/problem?id=3080 【题目大意】 求k个串的最长公共子串,如果存在多个则输出字典序最小,如果长度小于3则判断查找失败。 【题解】 将所有字符串通过拼接符拼成一个串,做一遍后缀数组,二分答案,对于二分所得值,将h数组大于这个值的相邻元素分为一组, ...
分类:
编程语言 时间:
2016-11-15 23:33:17
阅读次数:
287
线性动态规划 一、定义 线性动态规划是指目标函数为特定变量的线性函数,约束是这些变量的线性不等式或等式,目的是求目标函数的最大值或最小值。 二、典型例题 1、最长上升序列问题 问题描述:设有序列B为B1,B2,B3……Bn,若存在下标i1<i2<i3<……in,且Bi1<Bi2<Bi3<……Bin, ...
分类:
其他好文 时间:
2016-11-13 18:52:08
阅读次数:
186
注意最长公共子串(Longest CommonSubstring)和最长公共子序列(LongestCommon Subsequence, LCS)的区别:子串(Substring)是串的一个连续的部分,子序列(Subsequence)则是从不改变序列的顺序,而从序列中去掉任意的元素而获得的新序列;更 ...
分类:
其他好文 时间:
2016-11-04 14:24:17
阅读次数:
200
编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符 实现方案: 1. 找出最长公共子串长度 参考代码: apache commons-lang ...
分类:
其他好文 时间:
2016-11-02 18:08:42
阅读次数:
208
http://www.cppblog.com/mysileng/archive/2012/11/30/195841.html 最长递增子序列问题:在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i<j,必有a[i]<a[j],这样最长的子序列称为最长递增子序列。 设dp[i]表示以 ...
分类:
其他好文 时间:
2016-10-27 01:08:01
阅读次数:
231
最长公共子串与最长公共子序列是有区别的。区别在于最长公共子串要求字符是连续的。 例如:str1: abcd str2: abec那么最长公共子序列是:abc,长度为3最长公共子串是:ab,长度为2 1. 最长公共子序列 Largest common subsequence 最长公共子序列:用f[i] ...
分类:
其他好文 时间:
2016-10-26 19:10:43
阅读次数:
172
http://poj.org/problem?id=2774 题目大意就是给两个字符串,求最长公共子串。好像可以哈希切掉,但是为了练一练后缀数组以及学一学后缀自动机,我用不同方法终于A掉了这道题。 后缀数组:就是求出height数组然后扫一遍,求出满足条件的最大值(满足条件是指height所指的两个 ...
分类:
编程语言 时间:
2016-10-23 14:03:42
阅读次数:
305
Description 给出两个字符串,求最长公共子串. Sol SAM. 这题随便做啊...后缀数组/Hash+二分都可以. SAM就是模板啊...直接在SAM上跑就行,没有了 \(go[w]\) 就往 \(par\) 跳. 每走一步统计一下答案. Code ...
分类:
其他好文 时间:
2016-10-12 22:21:56
阅读次数:
137
最长公共子串(Longest Common Substirng)和最长公共子序列(Longest Common Subsequence,LCS)的区别为:子串是串的一个连续的部分,子序列则是从不改变序列的顺序,而从序列中去掉任意的元素而获得新的序列;也就是 说,子串中字符的位置必须是连续的,子序列则 ...
分类:
其他好文 时间:
2016-10-09 23:13:22
阅读次数:
158