zoukankan      html  css  js  c++  java
  • 3617.Best Cow Line --最小字典序(相同比较下一个)

    FJs是带了一群奶牛去参加“农场年”的竞赛,在这个比赛项目下 每一个农场主 对他们的奶牛排列成一行 【herd】然后把他们赶到比赛现
    场,这个比赛的组织方提出一种新的注册方案【registration注册 scheme方案】只需按照每头母牛出现的顺序登记其首字母即可。
    【initial最初的 letter信/校运会领队 phase阶段】根据奶牛名字的首字母串来判断每一组的词典编纂顺序。【increasing lexicographic order 增加词典编纂顺序】
    FJ非常忙碌而且不得不待会他的农场 他想尽可能简单被判决,他在注册前以及保持原来的队形上决定重新排列这群奶牛,FJ标记一个
    新的地方 用于竞赛中奶牛的新的站线,然后,他继续将牛从旧的列编组到新的列,通过重复地将原始列(剩余的)中的第一个或最后一
    个列发送到新列的末尾。当他完成后,FJ带着他的牛按新的顺序登记。【proceeds收入, 接着做 marshal陆军元帅 安排 first or last迟早,早晚
    remainder其他人员; 剩余物  廉价出售的图书 original line起点线 end of结尾; 为某事物的结尾; 末尾】
    正确的翻译:
    FJ将带他的N(1≤N≤2000)头牛参加年度“年度农民”比赛。在这场比赛中,每一个农场主都排成一行,把奶牛赶过裁判席。今年,比赛组
    织者采用了一个新的注册方案:只需按照每头母牛出现的顺序来注册它们的首字母(即,如果FJ按照顺序接收了贝西、西尔维亚和多拉,那
    么它只需注册BSD)。在注册阶段结束后,根据奶牛名字的首字母串,判断每组的词典顺序增加。FJ今年很忙,不得不赶回他的农场,所以
    他想尽早得到评判。他决定重新安排已经排好队的奶牛,然后再登记。FJ标志着一条新的竞争奶牛的位置。然后,他继续将牛从旧的列编组
    到新的列,通过重复地将原始列(剩余的)中的第一个或最后一个列发送到新列的末尾。当他完成后,FJ带着他的牛按新的顺序登记。考虑
    到奶牛的初始顺序,确定他能用这种方法做的最小词典字首串。
    
    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		while (sc.hasNext()) {
    			int sum = sc.nextInt();
    			char arr[] = new char[sum];
    			for (int i = 0; i < sum; i++) {
    				arr[i] = sc.next().charAt(0);
    			}
    			int a = 0;
    			int b = sum - 1;
    			String ans = "";
    			int count = 0;
    			while (a <= b) {
    				boolean left = false;
    				for (int i = 0; a + i < b; i++) // 利用布尔变量记录每一次比较结果
    				{
    					if (arr[a + i] < arr[b - i]) {
    						left = true;
    						count++;
    						break;
    					} else if (arr[a + i] > arr[b - i]) {
    						left = false;
    						count++;
    						break;
    					}
    				}
    				if (left) // 根据布尔值进行输出! //统一在括号外处理避免bug 之前一种写法是 相等是随便取一个 没有注意到break后 又执行外面的代码造成重复
    				{
    					System.out.print(arr[a++]);
    				} else {
    					System.out.print(arr[b--]);
    				}
    				if (count % 80 == 0) // 记得分行
    					System.out.println();
    			}
    			System.out.println();
    		}
    	}
    }
    
  • 相关阅读:
    CSS3与页面布局学习总结——Box Model、边距折叠、内联与块标签、CSSReset
    用php实现一个简单的链式操作
    关于php语言的使用!
    NSCalendar NSDateComponents
    IOS 谓词
    NSDate
    IOS asc码替换
    帝国CMS内容模板IF判断
    帝国CMS列表模板页面内容截取
    ios 获取崩溃日志
  • 原文地址:https://www.cnblogs.com/cznczai/p/11148157.html
Copyright © 2011-2022 走看看