POJ-3617 Best Cow Line---字符串贪心

题目链接:

https://vjudge.net/problem/POJ-3617

题目大意:

每次都可以从字符串的首部或者尾部提取字母,使得最后的字符串的字典序最小。

思路:

贪心做即可~每次从上和从下选择最小的,若相等则向中间搜索

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int n;
 7 char s[2005];
 8 void solve()
 9 {
10     int a = 0, b = n - 1;//左起字符下标和右起字符下标
11     int tot = 0;
12     while(a <= b)
13     {
14         bool left = true;
15         for(int i = 0; i + a < b; i++)
16         {
17             if(s[a + i] < s[b - i])
18             {
19                 left = true;
20                 break;
21             }
22             else if(s[a + i] > s[b - i])
23             {
24                 left = false;
25                 break;
26             }
27         }
28         if(left)cout<<s[a++];
29         else cout<<s[b--];
30         if((tot++) % 80 == 79)cout<<endl;
31     } 
32 }
33 int main()
34 {
35     cin >> n;
36     for(int i = 0; i < n; i++)cin >> s[i];
37     solve();
38     return 0;
39 }

 

posted @ 2018-04-09 21:17  _努力努力再努力x  阅读(109)  评论(0编辑  收藏  举报