dp,LCS

Posted codemaker-li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dp,LCS相关的知识,希望对你有一定的参考价值。

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <cstring>
 4 using namespace std;
 5 int dp[300][300][300];
 6 char a[1000];
 7 char b[1000];
 8 char c[1000];
 9 int main()
10 {
11     memset(dp,0,sizeof(0));
12     gets(a);
13     gets(b);
14     gets(c);
15     int lena=strlen(a);
16     int lenb=strlen(b);
17     int lenc=strlen(c);
18     for(int i=1;i<=lena;i++)
19     {
20         for(int j=1;j<=lenb;j++)
21         {
22             for(int k=1;k<=lenc;k++)
23             {
24                 if(a[i-1]==b[j-1]&&a[i-1]==c[k-1])
25                 {
26                     dp[i][j][k]=max(dp[i][j][k],dp[i-1][j-1][k-1]+1);
27                 }
28                 else
29                     dp[i][j][k]=max(max(dp[i-1][j][k],dp[i][j-1][k]),dp[i][j][k-1]);
30             }
31         }
32     }
33     printf("%d
",dp[lena][lenb][lenc]);
34     return 0;
35 }

LCS

最长公共子序列

三个串比较

以上是关于dp,LCS的主要内容,如果未能解决你的问题,请参考以下文章

hdu 1159 dp LCS

[睡前小dp] 序列相似性问题LCS和LIS

poj 1080 (LCS变形)

DP解LCS问题模板及其优化

dp--P1439 最长公共子序列(LCS)

dp,LCS