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

poj2250 最长上升子序列 + 输出

时间:2014-08-12 13:16:04      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   ar   

bubuko.com,布布扣
 1 //Accepted    208 KB    0 ms
 2 //最长公共上升子序列+输出
 3 //dp
 4 //输出时用的递归输出,注意条件判断
 5 #include <cstdio>
 6 #include <cstring>
 7 #include <iostream>
 8 using namespace std;
 9 const int imax_n = 105;
10 const int imax_stringlen = 32;
11 char s1[imax_n][imax_stringlen];
12 char s2[imax_n][imax_stringlen];
13 int dp[imax_n][imax_n];
14 int n1,n2;
15 int max(int a,int b)
16 {
17     return a>b?a:b;
18 }
19 void Dp()
20 {
21     memset(dp,0,sizeof(dp));
22     for (int i=1;i<=n1;i++)
23     {
24         for (int j=1;j<=n2;j++)
25         {
26             dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
27             if (strcmp(s1[i],s2[j])==0)
28             dp[i][j]=max(dp[i][j],dp[i-1][j-1]+1);
29         }
30     }
31 }
32 void output(int i,int j)
33 {
34     if (dp[i][j]==0) return ;
35     if (dp[i-1][j]==dp[i][j])
36     {
37         output(i-1,j);
38         return ;
39     }
40     if (dp[i][j-1]==dp[i][j])
41     {
42         output(i,j-1);
43         return ;
44     }
45     if (dp[i-1][j-1]+1==dp[i][j])
46     {
47         output(i-1,j-1);
48         if (dp[i][j]==1)
49         {
50             printf("%s",s1[i]);
51             return ;
52         }
53         else
54         {
55             printf(" %s",s1[i]);
56             return ;
57         }
58     }
59     return ;
60 }
61 int main()
62 {
63     while (scanf("%s",s1[1])!=EOF)
64     {
65         int k=1;
66         k++;
67         while (scanf("%s",s1[k]) && s1[k][0]!=#)
68         k++;
69         n1=k-1;
70         k=1;
71         while (scanf("%s",s2[k]) && s2[k][0]!=#)
72         k++;
73         n2=k-1;
74         Dp();
75         output(n1,n2);
76         printf("\n");
77     }
78     return 0;
79 }
View Code

 

poj2250 最长上升子序列 + 输出,布布扣,bubuko.com

poj2250 最长上升子序列 + 输出

标签:style   blog   http   color   os   io   for   ar   

原文地址:http://www.cnblogs.com/djingjing/p/3906806.html

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