原文链接动态规划法经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。解决思想:为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于...
分类:
其他好文 时间:
2014-08-14 23:09:56
阅读次数:
183
最长上升子序列就是求给定序列的最长的递增序列,其中不要求序列的元素在原序列中保持连续。
为了方便理解,可以举个例子:
inta[] = {0,2,1,5,3,6,4,8,9,7}(数组下标从1开始)的一个最长的子序列1,3,4,7,9。
利用动态规划的思想,可以方便的求取这个解。
为了方便解释,我们定义dp(n)为长度为1至下标为n的最长子序列的长度(数组下标假设从1开始),{a[1],a...
分类:
其他好文 时间:
2014-08-13 14:55:17
阅读次数:
195
给出两个由数字和字母组成的非空字符串S,T,求:1)S与T的最长公共子序列的长度。2)S与T的本质不同的非空公共子序列的个数。3)S与T的各种长度的本质不同的非空公共子序列的个数。思考过程:考场上,果断只会第一问,但是听完题解后,发现事实上他们的思想和第一问是一致的。(此题解借鉴讲题解人)首先考虑第...
分类:
其他好文 时间:
2014-08-12 00:01:53
阅读次数:
473
~~~~
题目意思问将序列 x 转化成序列 y 需要多少步操作。
题目链接:http://poj.org/problem?id=3356
~~~~
我的想法先求的两条序列的最长公共子序列。余下不相同或者是缺少的部分做相应的处理就好。
最长公共子序列都会吧,于是····
#include
#include
#include
#include
#define N 1000+10
using...
分类:
其他好文 时间:
2014-08-11 12:02:32
阅读次数:
238
经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。
为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。
【问题】 求两字符序列的最长公共字符子序列
问题描述:字符序列的子...
分类:
其他好文 时间:
2014-08-09 18:46:08
阅读次数:
288
一、什么是最长公共子序列 什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列。 举例如下,如:有两个随机数列,1 2 3 4 5 6 和 3 4 5 8 9,则它们的最长公共子序列便是:3 4 5....
分类:
其他好文 时间:
2014-08-09 18:15:58
阅读次数:
311
题目链接:
啊哈哈,点我点我
题意:给两个字符串,找出经过多少个操作可以使得两个串相等。。
思路:找出两个串的最长公共子序列,然后用最大的串的长度减去最长公共子序列的长度得到的就是需要的操作数。。
题目:
AGTC
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 1001...
分类:
其他好文 时间:
2014-08-09 11:37:47
阅读次数:
250
今天第一次用了滚动数组,缘由要从一道题说起:POJ 1159 Palindrome 题意:给你一个字符串,求对字符串最少添加几个字符可变为回文串。 分析: 简单做法是直接对它和它的逆序串求最长公共子序列长度len。n-len即为所求。至于为什么,小盆友们可以自己模拟一下下。O(∩_∩)O~因为这不是...
分类:
其他好文 时间:
2014-08-09 11:29:07
阅读次数:
286
题意:给你n个时间发生的序号,问你现在又n个时间发生的序号与给定的时间相同的有几个。思路:知道位置后,求一次最长公共子序列。#include #include const int maxn = 109;int dp[maxn][maxn];int a[maxn];int b[maxn];inline...
分类:
其他好文 时间:
2014-08-09 11:18:17
阅读次数:
205
最长公共子序列问题以及背包问题都是DP(动态规划)算法的经典题目,值得深度挖掘以致了解DP算法思想。问题如下:
最长公共子序列
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。
tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(L...
分类:
其他好文 时间:
2014-08-08 16:02:16
阅读次数:
200