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

LCS POJ 1159 Palindrome

时间:2015-04-29 21:33:35      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

 

题目传送门

 1 /*
 2     LCS裸题:长度减去最大相同长度就是要插入的个数
 3 */
 4 #include <cstdio>
 5 #include <iostream>
 6 #include <cstring>
 7 #include <algorithm>
 8 #include <string>
 9 using namespace std;
10 
11 const int MAXN = 5e3 + 10;
12 const int INF = 0x3f3f3f3f;
13 int dp[2][MAXN];
14 string s, ss;
15 
16 int LCS(int n)
17 {
18     int x = 0;
19     for (int i=1; i<=n; ++i)
20     {
21         x = 1 - x;
22         for (int j=1; j<=n; ++j)
23         {
24             if (ss[i-1] == s[j-1])
25             {
26                 dp[x][j] = dp[1-x][j-1] + 1;
27             }
28             else
29             {
30                 dp[x][j] = max (dp[x][j-1], dp[1-x][j]);
31             }
32         }
33     }
34 
35     return dp[x][n];
36 }
37 
38 int main(void)        //POJ 1159 Palindrome
39 {
40     #ifndef ONLINE_JUDGE
41     freopen ("1159.in", "r", stdin);
42     #endif
43 
44     int n;
45     while (~scanf ("%d", &n))
46     {
47         memset (dp, 0, sizeof (dp));
48         cin >> ss;
49         s = ss;
50         reverse (s.begin (), s.end ());
51 
52         int res = LCS (n);
53         printf ("%d\n", n - res);
54     }
55 
56     return 0;
57 }

 

LCS POJ 1159 Palindrome

标签:

原文地址:http://www.cnblogs.com/Running-Time/p/4466923.html

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