最长公共子序列问题 1。这里pre数组表示回溯的方式,状态转移方程!!! ...
分类:
其他好文 时间:
2016-12-03 18:31:09
阅读次数:
129
LCS问题即longest common subsequence problem,中文:最长公共子序列问题 给你两个字符串str1和str2,它们之间可能存在公有子序列,子序列和子串的区别是:子序列不要求连续,只需要按照顺序出现就好,子串则要求连续: 例如:SIMPLE和NAIVE有共同的子序列IE ...
分类:
其他好文 时间:
2016-11-26 23:20:09
阅读次数:
328
五大常用算法:分治、动态规划、贪心、回溯和分支界定 这五种算法引出了很多问题。慢慢的更新链接! 动态规划的五个典型算法:动态规划 1.最大连续子序列之和 2.数塔问题(二叉树从上往下遍历最大和问题) 3.01背包问题 4.最长递增子序列(LIS) 5.最长公共子序列(LCS) //最长公共子序列(L ...
分类:
编程语言 时间:
2016-11-21 07:50:12
阅读次数:
198
题目描述 Description 熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目。小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们要研究最长公共上升子序列了。 小沐沐说,对于两个串A,B,如果它们都包含一段位置不一定连续的数字,且数字是严格递增的,那么称这一段数字是两个串 ...
分类:
其他好文 时间:
2016-11-16 22:06:15
阅读次数:
208
其实题目是这个样子的: 仔细看能够知道,每条轨道上火车的编号都是递减的,这样就等价于求他的最大上升子序列的长度,由于N比较大,所以采用nlogn的LIS方法 f[i]表示长度为i的最长上升子序列最后一个最小为f[i],首先易证f[i]中存的数单调递增的 这样对于每个a[i],若a[i]>现有已知最长 ...
分类:
其他好文 时间:
2016-11-16 01:36:21
阅读次数:
137
线性动态规划 一、定义 线性动态规划是指目标函数为特定变量的线性函数,约束是这些变量的线性不等式或等式,目的是求目标函数的最大值或最小值。 二、典型例题 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
1、问题描述一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切的说,若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…k有zj=xij 例如,序列Z={B,C,D,B}是 ...
分类:
其他好文 时间:
2016-10-28 23:05:30
阅读次数:
267
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