本本题中,我要求解l[7,6],那么我先找到表中第7行第6列的标记,发现是个向上的箭头,说明了l[7,6]=l[6,6], 此时我又找到l[6.,6],发现标记的是个左上角的箭头,说明此时的A包含在解数组里面,将它加入到解数组中,之后将问题规模缩小到了l[5,5],再看l[5,5]…..
在我查找的过程中,随着l[I,j]中i和j的变化,这个问题的规模在逐渐缩小,直至我们遇到l[I,j]=0时停止搜索。
再说我们构造上表的过程,构造的时候,我们是从底到顶构造的,但是在...
分类:
其他好文 时间:
2014-10-27 23:05:04
阅读次数:
257
Common SubsequenceTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 23973Accepted Submission(s): 10...
分类:
其他好文 时间:
2014-10-25 18:39:42
阅读次数:
206
Palindrome
Time Limit: 3000MS
Memory Limit: 65536K
Total Submissions: 53414
Accepted: 18449
Description
A palindrome is a symmetrical string, that is, a string read ide...
分类:
编程语言 时间:
2014-10-16 21:42:53
阅读次数:
253
定义:
线性DP问题的子状态与父状态之间往往相差一个元素,所以子状态通过添加一个增量而转换到父状态。从最小的子问题到原问题,一层一层的状态转移呈现出线性递增的关系,所以称为线性DP。
经典的线性DP问题有最大字段和、最长公共子序列、最长回文子序列、最长不下降(下降)子序列等等。。。
大部分的线性DP都是1维的。
陆续更新线性DP的题。...
分类:
其他好文 时间:
2014-10-16 16:01:22
阅读次数:
198
本程序实现了字符串的最长公共子序列的方法:str[i,j]数组中保存str1,str2长度分别为0-i,0-j之间的最长公共子序列,s[i,j]数组中保存str1,str2长度分别为0-i,0-j之间的最长公共子序列的长度;
s[i,j]=0,i=0或者j=0
s[i,j]=s[i - 1, j - 1] + 1;str1[i]=str2[j]
s[i,j]=max{s[i - 1, j ],s[i , j-1 ] };str1[i]!=str2[j]...
题目:HDU 1503
思路:先求出最长公共子序列,记录路径。后进行拼接。
代码#include
#include
#include
#include
#include
#include
#define mod 1000000007
using namespace std;
typedef long long LL;
int dp[110][120];
char x[100],...
分类:
其他好文 时间:
2014-10-15 00:31:08
阅读次数:
208
最直白方法:时间复杂度是O(n3), 空间复杂度是常数reference:http://blog.csdn.net/monkeyandy/article/details/7957263/**** copyright@andy**http://blog.csdn.net/MonkeyAndy**/首先...
分类:
其他好文 时间:
2014-10-14 20:27:19
阅读次数:
204
题目链接:http://poj.org/problem?id=1458思路: 经典的最长公共子序列问题,使用动态规划解题。代码:#include #include using namespace std;const int MAX_N = 200 + 10;int dp[MAX_N][MAX_N]....
分类:
其他好文 时间:
2014-10-11 02:14:34
阅读次数:
201
/************************************************************************/
/* 动态规划求解最长公共子序列 */
/**************************************************************...
分类:
其他好文 时间:
2014-10-09 18:06:57
阅读次数:
264
最长升序子序列是最长公共子序列的变形。
只要将字符串升序排序后与原字符串求最长公共子序列即可。
以下提供一个工具类可以传入任何形式的数组。(添加新类型的数组时构造方法要自己加)。
package com.leejuen.string;
import java.lang.reflect.Array;
import java.util.Arrays;
public class LCS
{
...
分类:
编程语言 时间:
2014-09-28 16:53:13
阅读次数:
138