• poj1159Palindrome(最长公共子序列)


    http://poj.org/problem?id=1159

    这题以前见过 不会 今天做比赛又看到 知道自己不会 就没多想 后来CZ说是水题 最长公共子序列 我就开始想

    想到求正序和逆序的最长公共子序列 不知道对不对 就自己想了几个数据试了一下 都过了 就交了 还真蒙对了 ME了一次 又现学的滚动数组

    View Code
     1 #include <iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 int dp[3][5001];
     5 int main()
     6 {
     7     int i = 0,j = 0,k,n;
     8     char c1[5005],c2[5005];
     9     scanf("%d%*c",&n);
    10     gets(c1);
    11     for(i = n-1 ; i>= 0 ; i--)
    12     {
    13         c2[j++] = c1[i];
    14     }
    15     for(i = 0 ; i <= n ; i++)
    16     {
    17         dp[0][i] = 0;
    18     }
    19     dp[1][0] = 0;
    20     dp[2][0] = 0;
    21     for(i = 1 ; i <= n ; i++)
    22     {
    23         for(j = 1 ; j <= n ; j++)
    24         {
    25             if(i%2!=0)
    26             {
    27                 if(c1[i-1]==c2[j-1])
    28                 dp[1][j] = dp[2][j-1]+1;
    29                 else
    30                 {
    31                     if(dp[2][j]>dp[1][j-1])
    32                     dp[1][j] = dp[2][j];
    33                     else
    34                     dp[1][j] = dp[1][j-1];
    35                 }
    36             }
    37             else
    38             {
    39                 if(c1[i-1]==c2[j-1])
    40                 dp[2][j] = dp[1][j-1]+1;
    41                 else
    42                 {
    43                     if(dp[1][j]>dp[2][j-1])
    44                     dp[2][j] = dp[1][j];
    45                     else
    46                     dp[2][j] = dp[2][j-1];
    47                 }
    48             }
    49         }
    50     }
    51     if(n%2==0)
    52     printf("%d\n",n-dp[2][n]);
    53     else
    54     printf("%d\n",n-dp[1][n]);
    55     return 0;
    56 }
  • 相关阅读:
    L3-013. 非常弹的球
    L2-020. 功夫传人
    L1-039. 古风排版
    Innobackup备份过程
    MySQL物理备份的过程
    数据库表设计
    MySQL启动排错
    redo的类型和作用
    描述undo的三个作用
    redo log和binlog的纠缠
  • 原文地址:https://www.cnblogs.com/shangyu/p/2645678.html
Copyright © 2020-2023  润新知