求最长单增子序列(LIS)长度并统计取得最大长度的子序列数。扩展:把LIS换成最长先增后减子序列...
分类:
其他好文 时间:
2014-05-10 10:09:01
阅读次数:
506
动规基础:最长递增子序列的三种解法。附详解和代码。第一种:转化成LCS问题求解O(n*n)。第二种:设d[i]为以第i个元素结尾的最长递增子序列的长度O(n*n)。第三种:二分查找优化O(nlogn)。...
分类:
其他好文 时间:
2014-05-10 08:36:18
阅读次数:
462
一.最长公共子序列(LCS Longest Common
Subsequence)第一,先说区别,最长公共子串和最长公共子序列是不一样的。最长公共子串不许是连续的,而最长公共子序列可以是不联系的。网络上解释的子序列:一个字符串S,去掉零个或者多个元素所剩下的子串称为S的子序列。最长公共子序列就是寻找...
分类:
其他好文 时间:
2014-05-10 01:12:20
阅读次数:
370
大概作了一周,终于A了类似于求最长公共子序列,稍有变形当前序列 ch1 中字符为 a,序列 ch2
中字符为 b则有 3 种配对方式:1. a 与 b2. a 与 -3. - 与 b动态转移方程:dp[i][j] = max(dp[i - 1][j - 1]
+ g(ch1[i],ch2[j]) ,...
分类:
其他好文 时间:
2014-05-09 17:57:55
阅读次数:
255
题意:求最长子序列#include#includeusing namespace std;int
max(int x,int y){ if(x>y) return x; return y;}int map[1001][1001];char
s1[1001],s2[1001];int main(){ ...
分类:
其他好文 时间:
2014-05-07 20:07:29
阅读次数:
202
根据题意,很明显可以推出DP方程。
假如只考虑向左的方向:
dp[t][i][j]: 第t个时间段末滑行到i,j最长滑行的距离。
dp[t][i][j]=dp[t-1][i][1..k]+(j-k)=dp[t-1][i][1..k]-k+j(k
最终时间复杂度为O(n*m*k)
#include
#include
#include
#include
#include
using nam...
分类:
其他好文 时间:
2014-05-07 04:49:13
阅读次数:
363
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3998解题报告:求一个数列的最长上升子序列,并求像这样长的不相交的子序列最多有多少个。我用的是最简单的方法,就是每次求最长上升子序列,然后每次将求得的子序列从数列里面删掉,然后再对剩下的数列求最长上升子序...
分类:
其他好文 时间:
2014-05-05 10:04:28
阅读次数:
236
字符串hash模板,
本题是求,给定字符串s中至少出现m次的最长字符串长度,及此时起始位置的最大值
LA 4513 Stammering Aliens
//#pragma warning (disable: 4786)
//#pragma comment (linker, "/STACK:16777216")
//HEAD
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-05-04 09:52:37
阅读次数:
304
最长公共子序列经典问题,由于题的条件特殊,可转换成LIS问题,可在O(nlogn)内得到解决。根据刘汝佳大大的,加上自己的理解,不太理解的童鞋可以看一看(前提:已掌握LIS问题和LCS问题的解法)...
分类:
其他好文 时间:
2014-05-04 08:46:48
阅读次数:
339