zoukankan      html  css  js  c++  java
  • POJ3617

    给定长度为N的字符串S,构造长度为N的字符串T,起初T是空串,反复从S的头部或者尾部删除一个字符,加到T的尾部。目标是构造字典序尽可能小的T。尝试如下贪心算法:

    • 不断取S头部和尾部较小的字符放到T的尾部。

    考虑S头部和尾部字符相同的情况。有如下算法:

    • 按照字典序比较S和将S反转后的字符串S‘;
    • 如果S较小,从S的头部取出一个字符添加到T尾部;
    • 如果S‘较小,从S’的头部(即S的尾部)取出一个字符添加到T的尾部。
     1 #include <iostream>
     2 #include <cstdio>
     3 using namespace std;
     4 
     5 int N;
     6 char S[2100];
     7 
     8 void solve()
     9 {
    10     int left = 0, right = N-1;
    11     bool left_flag = false;
    12 
    13     int charnum = 1;
    14     while (left <= right)
    15     {
    16         for (int i = 0; left+i <= right; i++)
    17         {
    18             if (S[left+i] < S[right-i])
    19             {
    20                 left_flag = true;
    21                 break;
    22             }
    23             else if (S[left+i] > S[right-i])
    24             {
    25                 left_flag = false;
    26                 break;
    27             }
    28         }
    29         if (left_flag)
    30         {
    31             putchar(S[left++]);
    32             if (charnum == 80)
    33             {
    34                 putchar('
    ');
    35                 charnum = 0;
    36             }
    37             charnum++;
    38         }
    39 
    40         else
    41         {
    42             putchar(S[right--]);
    43             if (charnum == 80)
    44             {
    45                 putchar('
    ');
    46                 charnum = 0;
    47             }
    48             charnum++;
    49         }
    50     }
    51     putchar('
    ');
    52 }
    53 
    54 int main()
    55 {
    56     cin >> N;
    57     for (int i = 0; i < N; i++)
    58         cin >> S[i];
    59 
    60     solve();
    61 
    62     return 0;
    63 }
  • 相关阅读:
    web网站性能优化
    pdf2htmlEX安装和配置
    java 连接数据库
    eclipse 配置jsp
    c语言中数组,指针数组,数组指针,二维数组指针
    java 泛型
    C语言中关键字auto、static、register、const、volatile、extern的作用
    redis使用教程
    测试php单例模式和静态访问,实例化访问的效率
    软件测试流程
  • 原文地址:https://www.cnblogs.com/bournet/p/4002350.html
Copyright © 2011-2022 走看看