两个都是最长上升子序列,所以就放一起了1631 因为长度为40000,所以要用O(nlogn)的算法,其实就是另用一个数组c来存储当前最长子序列每一位的最小值,然后二分查找当前值在其中的位置;如果当前点不能作为当前最长子序列的最大值,则更新找到值为两者间的较小值。2533 就是一个裸的最长上升子序列...
分类:
其他好文 时间:
2014-07-30 20:13:04
阅读次数:
230
题意:输入N个DNA序列,每个DNA序列长度都为60。找到这些串的最长共有子序列。
注:若找不到,或最长子序列长度小于2,则输出no significant commonalities,否则输出最长公共子串,若长度相同输出字典序最小的
思路:暴力枚举第一个DNA序列的每一个子序列,用strstr()函数与其余的序列进行匹配...
分类:
其他好文 时间:
2014-07-26 02:50:36
阅读次数:
162
最长子序列和的问题。
时间复杂度从O(n3)到O(n)...
分类:
编程语言 时间:
2014-07-24 10:40:34
阅读次数:
216
最近学习了一下erlang, 编了个小程序
算法如下:
把参数分为三个
当前位置的前子序列(Save)(比如 -5, 1,2,-1, _, ... ) 前位置为_时, 前子序列就是 1,2,-1
以及此子序列的和(CurSum) ( 1,2,-1的 CurSum 是 2)
剩余的数 Rest; 剩余的数也可以表示为 [H|T] ,H是第一元素,T为剩余的元素是列表
...
分类:
其他好文 时间:
2014-07-15 12:38:22
阅读次数:
216
出题:求数组中最长递增子序列的长度(递增子序列的元素可以不相连);分析:解法1:应用DP之前需要确定当前问题是否具有无后效性,也就是每个状态都是对之前状态的一个总结,之后的状态仅会受到前一个状态的影响;对于递增子序列
而言,可以首先确定前面k个元素的最长子序列,然后计算增加一个元素之后的最长子序列。...
分类:
其他好文 时间:
2014-05-25 22:20:16
阅读次数:
339
求最长单增子序列(LIS)长度并统计取得最大长度的子序列数。扩展:把LIS换成最长先增后减子序列...
分类:
其他好文 时间:
2014-05-10 10:09:01
阅读次数:
506
题意:求最长子序列#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
最长上升子序列:
有两种基本方法:两个时间复杂度分别为O(n^2)和O(nlogn)。
O(n^2)
容易的出动态规划的递推公式dp[i]=max(dp[j])+1 j=1,2...i-1,dp[i]是以元素i结尾的最长子序列个数。
在O(n^2)的最长上升子序列中可以通过记录每个元素前缀元素位置的方式来得到整个的最长上升子序列。
代码:int LISOn2(int a[],int to...
分类:
其他好文 时间:
2014-04-29 13:24:22
阅读次数:
314