1 //Accepted 208K 0MS 2 //dp 3 //最长公共子序列+路径 4 #include 5 #include 6 #include 7 using namespace std; 8 const int imax_n = 105; 9 const int in...
分类:
其他好文 时间:
2014-09-02 21:21:15
阅读次数:
191
题目参考网上的代码的、、、//要找到所有序列中的最长的公共子序列,//定义状态dp[i]为在第一个序列中前i个数字中的最长公共子序列的长度,//状态转移方程为dp[i]=max(dp[i],dp[j]+1); j#include #include using namespace std ;int a...
分类:
其他好文 时间:
2014-09-02 19:26:05
阅读次数:
145
给出一个长为n的数列的k个排列(1?≤?n?≤?1000; 2?≤?k?≤?5),求这个k个数列的最长公共子序列的长度
dp[i]=max{dp[j]+1,where j
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define pb push_back
...
分类:
其他好文 时间:
2014-09-01 14:04:23
阅读次数:
192
题目大意:
给出1~n的k个排列(2
做法:
算是不难的DP,dp[i]表示以i为结尾的最长公共子序列的长度,由于每个数在一个排列中只可能出现一次,我们用一个二维数组pos[i][j]表示数字j在第i行出现在第几个位置,再用一个数组cnt[i] 记录i出现了多少次;当第i个数出现了k次之后,说明能够以该数为结尾构成公共子序列,那么dp[i]=max(dp[j]+1),其中i,j满足p...
分类:
其他好文 时间:
2014-08-31 17:22:21
阅读次数:
617
题意: 给出最多5个序列,问这几个序列的最长公共子序列的长度是多少。solution : 脑抽级别我是,第一个序列每个数字位置固定,这样只要维护一个k-1维的偏序集就好了。然后在保证每个位置合法的情况下走一遍最长上升子序列就好了。1#include2usingnamespacestd;3consti...
分类:
其他好文 时间:
2014-08-30 21:33:20
阅读次数:
173
int LCS(string str1, string str2) //返回最长公共字串长度{ //创建矩阵 int** martix; martix = new int*[str1.length()+1]; for(int i =0; imax) {...
分类:
其他好文 时间:
2014-08-30 16:24:39
阅读次数:
151
第一题:题目大意:求最长公共上升子序列(LICS);解题过程:1.一开始想到模仿求最长公共子序列的方法,F[i][j]表示A串前i个,B串前j个的最长公共子序列,很明显当A[i]!=B[j]时,F[i][j]=max (F[i-1][j] , F[i][j-1]);当A[i] =B[j]的时候,由于...
分类:
其他好文 时间:
2014-08-28 22:35:46
阅读次数:
384
题目链接:啊哈哈,点我点我题意:给两个字符串,找出经过多少个操作能够使得两个串相等。。思路:找出两个串的最长公共子序列,然后用最大的串的长度减去最长公共子序列的长度得到的就是须要的操作数。。题目:AGTCTime Limit:1000MSMemory Limit:65536KTotal Submis...
分类:
其他好文 时间:
2014-08-28 12:53:19
阅读次数:
151
解决最长公共子序列问题:求解的方法如图所示:例如,设所给的两个序列为X=和Y=。由算法LCS_LENGTH和LCS计算出的结果如下图所示:其模板可以写成void lcss(){ int i,j; int sizex=str1.length(); int sizey=str2.len...
分类:
其他好文 时间:
2014-08-27 16:21:27
阅读次数:
206
Palindrome
Time Limit: 3000MS
Memory Limit: 65536K
Total Submissions: 52966
Accepted: 18271
Description
A palindrome is a symmetrical string, that is, a string read i...
分类:
其他好文 时间:
2014-08-23 23:03:21
阅读次数:
569