zoukankan      html  css  js  c++  java
  • poj 3617 Best Cow Line

    题意:

    给出一个字符串,每次可以从首位或者尾部拿一个字符放到一个新的字符串中,求字典序最小的新字符串。

    思路:

    贪心,不同取小的,相同就比较,直到不同或者比较完毕,再取小的(相同随便取)。

    坑:

    pe一万发,首先i为0的时候i % 80 = 0这个要注意,其次是如果最后剩了不足80,那么也要换行。

    代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 char a[2005];
     5 
     6 int cmp(int i,int j)
     7 {
     8     for (;i <= j;i++,j--)
     9     {
    10         if (a[i] < a[j]) return -1;
    11         else if (a[i] > a[j])return 1;
    12     }
    13 
    14     return 0;
    15 }
    16 
    17 int main()
    18 {
    19     int n;
    20 
    21     while (scanf("%d",&n) != EOF)
    22     {
    23         int cnt = 0;
    24 
    25         for (int i = 0;i < n;i++)
    26         {
    27             char s[5];
    28 
    29             scanf("%s",s);
    30 
    31             a[cnt++] = s[0];
    32         }
    33 
    34         int i = 0,j = cnt - 1;
    35 
    36         char e[2005];
    37         int num = 0;
    38 
    39         while (i <= j)
    40         {
    41             if (i == j)
    42             {
    43                 e[num++] = a[i];
    44                 break;
    45             }
    46 
    47             if (a[i] < a[j])
    48             {
    49                 e[num++] = a[i++];
    50             }
    51             else if (a[i] > a[j])
    52             {
    53                 e[num++] = a[j--];
    54             }
    55             else
    56             {
    57                 if (cmp(i,j) < 0) e[num++] = a[i++];
    58                 else if (cmp(i,j) > 0) e[num++] = a[j--];
    59                 else e[num++] = a[i++];
    60             }
    61         }
    62 
    63         e[num] = 0;
    64 
    65         for (int i = 0;i < num;i++)
    66         {
    67             if (i % 80 == 0 && i) printf("
    ");
    68             printf("%c",e[i]);
    69         }
    70 
    71         if (num % 80) printf("
    ");
    72     }
    73 
    74 
    75 
    76     return 0;
    77 }
  • 相关阅读:
    SpringMVC执行原理
    Hello SpringMVC 注解版
    Hello SpringMVC 注解版
    Mybatis一对多和多对一处理
    2020-08-08日报博客
    2020-08-07日报博客
    《大道至简》读后感
    2020-08-06日报博客
    2020-08-05日报博客
    2020-08-04日报博客
  • 原文地址:https://www.cnblogs.com/kickit/p/8026869.html
Copyright © 2011-2022 走看看