poj3617

本文地址:http://www.javashuo.com/article/p-pfcaajyv-bp.htmlhtml

題目名稱:Best Cow Lineide

連接:http://poj.org/problem?id=3617spa

題意:有一個競賽,FJ計劃把他的原先牛的隊列變成字典序最小的串。規則是依次把原先牛隊列的頭部或者尾部放到新串隊列的尾部。code

思路:貪心,開始想到咱們每次把牛頭部和尾部比較小的丟到新隊列。然而這樣若是頭尾相同的話就要考慮接下去第二個字符的大小,依次類推。碰到哪邊比較小的就得拿哪邊的,相同就均可以。輸出按每行 80 頭輸出 (注意!)。htm

代碼以下:blog

 1 #include<cstdio>
 2 using namespace std;  3 char str[2005];  4 int main() {  5     int n;  6     scanf("%d", &n);  7     for(int i = 1; i <= n; ++i){  8  getchar();  9         scanf("%c", &str[i]); 10  } 11     int a = 1, b = n, ans = 0; 12     while(a <= b) { 13         bool left = false; 14         for(int i = 0; i <= (b - a) / 2; ++i) { 15             if(str[a + i] < str[b - i]) { 16                 left = true; break; 17  } 18             else if(str[a + i] > str[b - i]) { 19                 left = false; break; 20  } 21  } 22         if(left) putchar(str[a++]); 23         else putchar(str[b--]); 24         ans++; 25         if(ans % 80 == 0) 26             puts(""); 27  } 28     puts(""); 29     return 0; 30 }
View Code
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息