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 }
越努力,越幸运