zoukankan      html  css  js  c++  java
  • CF 335B. Palindrome(DP)

    题目链接

    挺好玩的一个题,1Y。。。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 using namespace std;
     5 int dp[2601][2601];
     6 char s1[50001];
     7 char s2[50001];
     8 int o[26];
     9 char que[5001];
    10 int main()
    11 {
    12     int i,j,len,a,b,num;
    13     scanf("%s",s1);
    14     len = strlen(s1);
    15     for(i = 0; i < len; i ++)
    16     {
    17         o[s1[i]-'a'] ++;
    18     }
    19     for(i = 0; i < 26; i ++)
    20     {
    21         if(o[i] >= 100)
    22         {
    23             for(j = 0; j < 100; j ++)
    24                 printf("%c",i+'a');
    25             printf("
    ");
    26             return 0;
    27         }
    28     }
    29     for(i = 0; i < len; i ++)
    30         s2[i] = s1[len-i-1];
    31     for(i = 1; i <= len; i ++)
    32     {
    33         for(j = 1; j <= len; j ++)
    34         {
    35             if(s1[i-1] == s2[j-1])
    36                 dp[i][j] = dp[i-1][j-1] + 1;
    37             else
    38                 dp[i][j] = max(dp[i-1][j],dp[i][j-1]);
    39         }
    40     }
    41     a = b = len;
    42     num = 0;
    43     while(a != 0&&b != 0)
    44     {
    45         if(s1[a-1] == s2[b-1])
    46         {
    47             que[num++] = s1[a-1];
    48             a --;
    49             b --;
    50         }
    51         else if(dp[a][b] == dp[a-1][b])
    52             a --;
    53         else if(dp[a][b] == dp[a][b-1])
    54             b --;
    55     }
    56     if(num <= 100)
    57     {
    58         for(i = 0; i < num; i ++)
    59         {
    60             printf("%c",que[i]);
    61         }
    62     }
    63     else
    64     {
    65         for(i = 0;i < 50;i ++)
    66         {
    67             printf("%c",que[i]);
    68         }
    69         for(i = 49;i >= 0;i --)
    70         {
    71             printf("%c",que[i]);
    72         }
    73     }
    74     printf("
    ");
    75     return 0;
    76 }

  • 相关阅读:
    poj 3264 Balanced Lineup
    poj 2762 Going from u to v or from v to u?
    hdu 3671 Boonie and Clyde
    zoj 3195 Design the city
    poj 1523 SPF
    Codeforces Polo the Penguin and Matrix
    MVC原理的简述(转)
    C#访问权限修饰符
    XML Schema介绍
    Sql批量删除/插入
  • 原文地址:https://www.cnblogs.com/naix-x/p/3379352.html
Copyright © 2011-2022 走看看