_____________________________________动态规划之最长子序列问题______1:两个序列中的______________________________________

动态规划之最长自序列问题....两个字符串中的最长子序列问题.

参考例题杭电1159.....参考文件.lcy老师的课件....在此对lcy老师致敬..

最长子序列问题.......

下面附上题目

简言之 就是给你两个 字符串 让你从中找出  最长递增 公共子序列  

题目的意思就是....给你两个字符串序列求出他们的最长自序列..........下面附上lcy老师可见的截图

..以第一个图的公式为基础,推导出下一个图的数字.

 

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<queue>
 7 #include<vector>
 8 #include<set>
 9 #include<stack>
10 #include<string>
11 #include<sstream>
12 #include<map>
13 #include<cctype>
14 using namespace std;
15 char a[2222],b[2222];
16 int c[500][500];
17 int main()
18 {
19     int i=0,j=0,a1,b1;
20     while(scanf("%s%s",a,b)!=EOF)
21     {
22         a1=strlen(a);
23         b1=strlen(b);
24         memset(c,0,sizeof(c));
25         for(i=1;i<=a1;i++)
26         {
27             for(j=1;j<=b1;j++)
28             {
29                 if(a[i-1]==b[j-1])
30                     c[i][j]=c[i-1][j-1]+1;       // 相等的话 取  右上角   
31                 else
32                     c[i][j]=max(c[i-1][j],c[i][j-1]);  //   不相等 的话  在 左边或上边 取一个最大的     
33             }
34         }
35         printf("%d\n",c[a1][b1]);
36     }
37     return 0;
38 }

 

posted @ 2015-12-06 12:15  X-POWER  阅读(676)  评论(0编辑  收藏  举报