基础的lcs问题。。。
至于lcs是什么。。。。百度好了啊。。
话说应该有一篇报告是写了怎么推到(推导)lcs公式的
所以就随便粘个代码吧
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<algorithm>
using namespace std;
int f[1010][1010],len1,len2,maxf;
char s[3][2010];
int main()
{
while (scanf("%s ",s[1])!=EOF)
{
memset(f,0,sizeof(f));
f[0][0]=0;
maxf=0;
scanf("%s ",s[2]);
len1=strlen(s[1]);
len2=strlen(s[2]);
for (int i=1;i<=len1;i++)
for (int j=1;j<=len2;j++)
{
if (s[1][i-1]==s[2][j-1]) f[i][j]=f[i-1][j-1]+1;
else f[i][j]=max(f[i-1][j],f[i][j-1]);
maxf=max(maxf,f[i][j]);
}
printf("%d\n",maxf);
memset(s,0,sizeof(s));
}
//cin>>maxf;
return 0;
}
顺便膜拜一下FINAL AK的T神。。。。。去final这种事情对于蒟蒻果然只是梦想吗。。

本文讨论了LCS(最长公共子序列)问题的基本概念,并提供了代码实现。此外,文章还提到了如何推导LCS公式以及对LCS算法的深入理解。
4840

被折叠的 条评论
为什么被折叠?



