码迷,mamicode.com
首页 > 其他好文 > 详细

dp,LCS

时间:2018-10-14 23:59:21      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:std   gets   ++   ace   turn   char   print   sizeof   clu   

 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\n",dp[lena][lenb][lenc]);
34     return 0;
35 }

LCS

最长公共子序列

三个串比较

dp,LCS

标签:std   gets   ++   ace   turn   char   print   sizeof   clu   

原文地址:https://www.cnblogs.com/codemaker-li/p/9788801.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!