POJ 3617 Best Cow Line (字典序最小_贪心)
2015-09-13 21:05
489 查看
Description
FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges.
The contest organizers adopted a new registration scheme this year: simply register the initial letter of every cow in the order they will appear (i.e., If FJ takes Bessie, Sylvia, and Dora in that order he just registers BSD). After the registration phase
ends, every group is judged in increasing lexicographic order according to the string of the initials of the cows' names.
FJ is very busy this year and has to hurry back to his farm, so he wants to be judged as early as possible. He decides to rearrange his cows, who have already lined up, before registering them.
FJ marks a location for a new line of the competing cows. He then proceeds to marshal the cows from the old line to the new one by repeatedly sending either the first or last cow in the (remainder of the) original line to the end of the new line. When he's
finished, FJ takes his cows for registration in this new order.
Given the initial order of his cows, determine the least lexicographic string of initials he can make this way.
Input
* Line 1: A single integer: N
* Lines 2..N+1: Line i+1 contains a single initial ('A'..'Z') of the cow in the ith position in the original line
Output
The least lexicographic string he can make. Every line (except perhaps the last one) contains the initials of 80 cows ('A'..'Z') in the new line.
Sample Input
Sample Output
此题坑点在输出格式上,超出80个单词需要另起一行!!!! PE一发
FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges.
The contest organizers adopted a new registration scheme this year: simply register the initial letter of every cow in the order they will appear (i.e., If FJ takes Bessie, Sylvia, and Dora in that order he just registers BSD). After the registration phase
ends, every group is judged in increasing lexicographic order according to the string of the initials of the cows' names.
FJ is very busy this year and has to hurry back to his farm, so he wants to be judged as early as possible. He decides to rearrange his cows, who have already lined up, before registering them.
FJ marks a location for a new line of the competing cows. He then proceeds to marshal the cows from the old line to the new one by repeatedly sending either the first or last cow in the (remainder of the) original line to the end of the new line. When he's
finished, FJ takes his cows for registration in this new order.
Given the initial order of his cows, determine the least lexicographic string of initials he can make this way.
Input
* Line 1: A single integer: N
* Lines 2..N+1: Line i+1 contains a single initial ('A'..'Z') of the cow in the ith position in the original line
Output
The least lexicographic string he can make. Every line (except perhaps the last one) contains the initials of 80 cows ('A'..'Z') in the new line.
Sample Input
6 A C D B C B
Sample Output
ABCBCD
此题坑点在输出格式上,超出80个单词需要另起一行!!!! PE一发
#include<iostream> #include<cstdio> using namespace std; char s[2222]; bool check(int l,int r) { while(l<=r) { if(s[l]==s[r]) { l++; r--; } else if(s[l]>s[r]) return false; else return true; } return true; } int main() { int i,j,l,r,n,sigh; cin>>n; sigh=0; for(i=1;i<=n;i++) cin>>s[i]; l=1;r=n; while(l<=r) { if(s[l]<s[r]) cout<<s[l++]; else if(s[l]>s[r]) cout<<s[r--]; else { if(check(l,r)) cout<<s[l++]; else cout<<s[r--]; } sigh++; if(sigh==80) { cout<<endl; sigh=0; } } cout<<endl; return 0; }
相关文章推荐
- ListView 里面数据重复或者顺序乱了
- 设计模式C++实现(2)——策略模式
- groovy : poi XLSX2CSV
- 我的Docker学习笔记
- Processing实现Google新图标
- oracle里long类型的总结
- Android实战简易教程-第五十八枪(AlarmManager类用法研究小实例)
- JS面向对象
- JS实现页面回到顶部效果
- 漏洞信息发布平台和网络安全
- 设计模式C++实现(3)——适配器模式
- 异常处理最佳实践
- 可视化算法网站
- 打算有时间写写博客
- 使用VS Code开发ASP.NET 5 应用程序
- Elven Postman(BST )
- 类的实现
- 设计模式C++实现(4)——饿汉懒汉之单例模式
- struts2 出现com.opensymphony.xwork2.util.ValueStack
- 浅谈C/C++引用和指针的联系和区别