一.最长公共子序列(LCS Longest Common
Subsequence)第一,先说区别,最长公共子串和最长公共子序列是不一样的。最长公共子串不许是连续的,而最长公共子序列可以是不联系的。网络上解释的子序列:一个字符串S,去掉零个或者多个元素所剩下的子串称为S的子序列。最长公共子序列就是寻找...
分类:
其他好文 时间:
2014-05-10 01:12:20
阅读次数:
370
大概作了一周,终于A了类似于求最长公共子序列,稍有变形当前序列 ch1 中字符为 a,序列 ch2
中字符为 b则有 3 种配对方式:1. a 与 b2. a 与 -3. - 与 b动态转移方程:dp[i][j] = max(dp[i - 1][j - 1]
+ g(ch1[i],ch2[j]) ,...
分类:
其他好文 时间:
2014-05-09 17:57:55
阅读次数:
255
题意:求最长子序列#include#includeusing namespace std;int
max(int x,int y){ if(x>y) return x; return y;}int map[1001][1001];char
s1[1001],s2[1001];int main(){ ...
分类:
其他好文 时间:
2014-05-07 20:07:29
阅读次数:
202
1题目:给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{
Ni, Ni+1, ..., Nj },其中 1 int main(){ int n, a[10001], left, beforeleft, right,
i, max, sum; while...
分类:
其他好文 时间:
2014-05-06 13:18:27
阅读次数:
366
题目链接:http://acm.nbut.edu.cn/Contest/view/id/70/problem/B.xhtml题意:给出n(\(n\leq
100000\))个正整数,考虑这个序列的连续的子序列的个数,将含有两个以上相同数字的子序列排除在外,将不同位置的相同序列算作两种,问这样的序列有...
分类:
其他好文 时间:
2014-05-05 11:00:58
阅读次数:
277
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3998解题报告:求一个数列的最长上升子序列,并求像这样长的不相交的子序列最多有多少个。我用的是最简单的方法,就是每次求最长上升子序列,然后每次将求得的子序列从数列里面删掉,然后再对剩下的数列求最长上升子序...
分类:
其他好文 时间:
2014-05-05 10:04:28
阅读次数:
236
题目链接题意 :
给你两个字符串,两个字符串都有共同的字母,给你每个字母的值,规则是,找出两个字符串中的共同的一个字母,然后这个字母的值就可以加到自己的分数上,但是这步操作之后,这两个字母及其之前的字母都要删除掉,问你能够得到的最大的值是什么。思路:最长公共子序列,加了一个权值。
1 #includ...
分类:
其他好文 时间:
2014-05-04 11:13:24
阅读次数:
242
最长公共子序列经典问题,由于题的条件特殊,可转换成LIS问题,可在O(nlogn)内得到解决。根据刘汝佳大大的,加上自己的理解,不太理解的童鞋可以看一看(前提:已掌握LIS问题和LCS问题的解法)...
分类:
其他好文 时间:
2014-05-04 08:46:48
阅读次数:
339
题意:求最大上升子序列和#includeusing namespace std;int
main(){ int n,a[1001],b[1001],max; while(cin>>n&&n!=0) { for(int
i=1;i>a[i]; b[1]=a...
分类:
其他好文 时间:
2014-05-03 22:29:38
阅读次数:
282
题目:经典dp题目,求出最大相邻子序列的和。
方法:给出两种方法,一种dp,一种直接暴力(数据量小的时候可以考虑)。
代码1:
#include
#include
using namespace std;
int main()
{
int n;
int t=1;
cin>>n;
int s[100010];
while(t<=n)
{
...
分类:
其他好文 时间:
2014-05-03 17:02:34
阅读次数:
324