参考:http://www.ahathinking.com/archives/124.html最长公共子序列1、动态规划解决过程1)描述一个最长公共子序列 如果序列比较短,可以采用蛮力法枚举出X的所有子序列,然后检查是否是Y的子序列,并记录所发现的最长子序列。如果序列比较长,这种方法需要指数级时间....
分类:
编程语言 时间:
2015-03-18 23:05:17
阅读次数:
370
例题:timus1146. Maximum Sum最大子矩阵可转化为最打子序列问题,最长子序列可以这样做:设a[N],则a[N]的最大子序列有两种可能(1)一直连续到a[i]。(2)从a[i]开始 。(如果不包括a[i]则之前已经算好,不用管)。则可以利用这个循环来求最大子序列int maxl(in...
分类:
其他好文 时间:
2015-03-08 21:31:17
阅读次数:
128
题目大意:给定一个序列,求以较小数开始的锯齿子序列,使相邻两项之间差值不小于k
令f[i][0]表示第i个数为序列中的较大值的最长子序列
f[i][1]表示第i个数为序列中的较小值的最长子序列
暴力转移是O(n^2)的
我们发现决策点的值都是连续的一段区间 因此用线段树维护一下就行了
(真简略)
#include
#include
#include
#include
#defi...
分类:
其他好文 时间:
2015-03-07 20:02:56
阅读次数:
215
单调递增最长子序列
时间限制:3000 ms | 内存限制:65535 KB
难度:4
描述求一个字符串的最长递增子序列的长度
如:dabdbf最长递增子序列就是abdf,长度为4
输入第一行一个整数0
随后的n行,每行有一个字符串,该字符串的长度不会超过10000
输出输出字符串的最长递增子序列的长度
样例输入
3
aaa
ababc
abklm...
分类:
其他好文 时间:
2015-03-05 14:55:40
阅读次数:
128
题意:给定一个序列,求最长上升子序长度以及有多少组,每个元素只能用一次。
思路:先求LIS,记为num,求出以每个点为末尾的最长子序列长度。窝们将每个点点拆成i和i',i --> i' 容量为1,源点连接d[ i ]=1的点,容
量为1,汇点连接d[ i ]=num的点,容量为1。对于j i 连一条容量为1的边,跑最大流即可。详见代码:
/**********************...
分类:
其他好文 时间:
2015-02-17 22:27:18
阅读次数:
249
开始觉得这道题果断是用LCS解的,因为只要把大象的编号分别按照体重从小到大排序获得序列一,然后再将原始编号按照智商从大到小排序获得序列二。然后两个序列求最长子序列即可。但是后来发现这样做有问题,题目中要求所得子序列的体重或是智商都是严格单调的。解决方法其实也简单,只要在编号匹配的情况下,智商和体重都和前一个已经匹配的大象不一样就可以了。不过.....这种方法始终wrong answer。我想可能是...
分类:
其他好文 时间:
2015-02-07 11:49:23
阅读次数:
111
题意: 一个序列可能有多个最长子序列,现在问每个元素是以下三个种类的哪一类:1.不属于任何一个最长子序列2.属于其中某些但不是全部最长子序列3.属于全部最长子序列解法: 我们先求出dp1[i]表示1~i 的最长递增子序列长度, dp2[i]表示 n~i 的最长递减子序列长度(严格增减),这里我们可以...
分类:
编程语言 时间:
2015-01-16 22:12:22
阅读次数:
212
/*
分析此问题可知,为最长子序列(LCS)问题的变形。
假设两个子序列分别是X,Y;
Xi=(x1,x2...xi),Yj=(y1,y2..yj)分别是两个子序列的前i,j个子序列
求最长子序列;
1、当xi=yj时,dp[i][j]=dp[i-1][j-1]+1
2、当xi!=yj时,则dp[i][j]=max(dp[i-1][j],dp[i][j-1]...
分类:
其他好文 时间:
2014-12-16 22:42:53
阅读次数:
218
最长非上升子序列问题是一个经典的DP问题。如下给出完整的问题描述: 给你一串序列 A1,A2,A3,A4,A5........An。让你找出它的某个最长子序列 S1,S2,S3,S4.........Sm。使得 S1ans)14 ans = dp[j];15 ...
分类:
其他好文 时间:
2014-12-04 19:25:33
阅读次数:
211
一、最长递增序列的问题描述:
求一个整数序列的最长递增子序列,子序列不要求是连续的。例如:
Input:4,6,9,6,7,6,3,8,10;Output:5
二、解决方法:
1、用动态规划的方法解决。从问题我们可以知道,我们最终得到的最长递增子序列,其任意一段子序列也是对应序列中的最长子序列。这样说可能不好理解,就以上面的例子来说:
最长子序列为:4,6, 7, 8...
分类:
编程语言 时间:
2014-11-27 16:31:30
阅读次数:
209