POJ-3617-Best Cow Line
阿新 • • 發佈:2019-01-29
這個題就是說給你一系列字母, 要你取出字典序最小的字串,每次只能從最上面或者最下面進行取
貪心做即可~每次從上和從下選擇最小的,若相等則向中間搜尋
程式碼:
#include<cstdio> #include<cstring> #include<iostream> using namespace std; int n,str[2011]; int main() { while(scanf("%d",&n)!=EOF) { char ch; for(int i=0;i<n;i++) { getchar(); ch=getchar(); str[i]=ch-'A'; } int pre=0,last=n-1,count=0; for(int i=0;i<n;i++) { if(str[pre]==str[last]) { int pr=pre,la=last,flag=0; while(pr<=la) { if(str[pr]<str[la]) { printf("%c",str[pre]+'A'); count++; flag=1; pre++; break; } else if(str[pr]>str[la]) { printf("%c",str[last]+'A'); count++; flag=1; last--; break; } pr++,la--; } if(!flag) { printf("%c",str[pre]+'A'); count++; pre++; } } else if(str[pre]<str[last]) { printf("%c",str[pre]+'A'); count++; pre++; } else { printf("%c",str[last]+'A'); count++; last--; } if(count==80) { count=0; printf("\n"); } } if(count) printf("\n"); } return 0; }