POJ 3617 Best Cow Line(最佳奶牛队伍)

POJ 3617 Best Cow Line

Time Limit: 1000MS  Memory Limit: 65536K

【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.

FJ打算带他的N(1 ≤ N ≤ 2,000)头奶牛去参加"Farmer of the Year"比赛。在这个比赛中每个农夫都会把他们的奶牛排成一队,然后经过评审团。

 

比赛方今年采用了一种新的登记方案:每头牛的出场都以名字首字母进行简要登记(换句话说,如果FJ带了Bessie、Sylvia和Dora参加,那么他只要登记成BSD)。登记结束后,每组评判根据奶牛名字首字母串字典序升序评判。

 

FJ今年事特多又得赶回农场,想早点完事。因此他决定在登记前把已经排好队的奶牛重排一遍。

 

FJ找了块地给比赛的奶牛排新队伍。接着他不断把第一头或最后一头牛从旧(或者剩下的)队伍转移到新队伍的尾部。搞定后,FJ会用这个新队伍登记。

 

给你这群奶牛的大写字母,找出上述方法排列后字典序最小的字符串。

 

【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

* 第1行: 一个整数: N

* 第2..N+1行: 第i+1行包含表示第i个奶牛初始位置的一个大写字母('A'..'Z')

 

【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.

输出所能构造的最小字典序字符串。每行(最后一行不用管)包含80头奶牛的大写字母('A'..'Z')。

 

【Sample Input - 输入样例】

【Sample Output - 输出样例】

6

A

C

D

B

C

B

ABCBCD

 

【题解】

贪心法,取字典序最小的元素。

输出时每次从旧队伍的头/尾取出较小的元素,如果字典序相同,就看看哪一边能更快地输出字典序较小的元素。

【代码 C++】

 1 #include<cstdio>
 2 char data[2005];
 3 int i;
 4 bool cmp(int L, int R){
 5     if (data[L] == data[R]){
 6         while (data[L] == data[R] && L < R) ++L, --R;
 7     }
 8     return data[L] < data[R];
 9 }
10 void opt(char now){
11     if (i == 80) i = 0, puts("");
12     putchar(now), ++i;
13 }
14 int main(){
15     int L, R, n;
16     scanf("%d", &n);
17     for (i = 0; i < n; ++i) getchar(), data[i] = getchar();
18     for (i = L = 0, R = n - 1; L <= R;){
19         if (cmp(L, R)) opt(data[L++]);
20         else opt(data[R--]);
21     }
22     return 0;
23 }

 

转载于:https://www.cnblogs.com/Simon-X/p/5309380.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js blob php_js发送blob数据, php端接收blob数据

服务器环境CentOs7.4 php7print_r($_FILES)blob结构如下Array([blob] > Array([name] > blob[type] > image/jpeg[tmp_name] > /tmp/phpu37qnN[error] > 0[size] > 1175745))很纳闷这个结构为什么没有图片数据流&#xff0c;只有图片的信息闷了几个小时胡…

eclipse环境配置、快捷键及基本操作

Eclipse与MyEclipse的区别 Elipse是一种可扩展的开放源代码的集成开发环境&#xff0c;具有免费、纯java语言编写、免安装、扩展性强等特点。 MyElipse在Elipse基础上追加的功能性插件&#xff0c;对插件收费&#xff0c;在WEB开发中提供强大的系统架构平台。 工作空间的基本配…

php 枚举类型比较,枚举的比较-python编程入门系列图文教程-PHP中文网教程

因为枚举成员不是有序的&#xff0c;所以它们只支持通过标识(identity) 和相等性 (equality) 进行比较。下面来看看 和 is 的使用&#xff1a;#!/usr/bin/env python3# -*- coding: UTF-8 -*-from enum import Enumclass User(Enum):Twowater 98Liangdianshui 30Tom 12Twow…

我与C++的不解情缘

我是一个老实人&#xff0c;我当时报考C真的全心是为了自己自考的免考&#xff0c;绝不是为了什么二级证&#xff0c;可是&#xff0c;进行到一半的时候&#xff0c;突然获悉&#xff0c;C自我们这次开始&#xff0c;不作为免考科目了&#xff0c;当时我的心里啊&#xff0c;那…

hadoop之 Hadoop2.2.0中HDFS的高可用性实现原理

在Hadoop2.0.0之前&#xff0c;NameNode(NN)在HDFS集群中存在单点故障&#xff08;single point of failure&#xff09;&#xff0c;每一个集群中存在一个NameNode&#xff0c;如果NN所在的机器出现了故障&#xff0c;那么将导致整个集群无法利用&#xff0c;直到NN重启或者在…

3D坦克大战游戏源码

3D坦克大战游戏源码&#xff0c;该游戏是基于xcode 4.3&#xff0c;ios sdk 5.1开发。在xcode4.3.3上完美无报错。兼容ios4.3-ios6.0 &#xff0c;一款ios平台上难得的3D坦克大战游戏源码&#xff0c;有20张不同的作战地图。通过左下角方向键和重力感应来控制坦克运行&#xff…

mongodb php 扩展 linux,CentOS Linux 安装PHP的MongoDB扩展

一、下载、编译以及安装MongoDB的php扩展cd /data0/softwaregit clone git://github.com/mongodb/mongo-php-drivercd mongo-php-drivergit submodule initgit submodule update/usr/local/webserver/php/bin/phpize./configure --with-php-config/usr/local/webserver/php/bin…

The hierarchy of the type UserOperateLogAdvisor is inconsistent

加入 aopalliance-1.0.jar转载于:https://www.cnblogs.com/toSeeMyDream/p/4375962.html

Acrobat DC发布一周年 激活移动时代文件处理革命

“我们很高兴地看到&#xff0c;Adobe Acrobat DC推出一年以来&#xff0c;在包括AEC在内的多个行业获得了广泛的应用&#xff0c;受到了普遍的欢迎和高度的认可。”Adobe高级渠道销售经理马骥在研讨会上指出&#xff0c;“整合了多种智能工具的Adobe Acrobat DC大大推动了企业…

介绍一个轻量级iOS安全框架:SSKeyChain

SSKeyChains对苹果安全框架API进行了简单封装&#xff0c;支持对存储在钥匙串中密码、账户进行访问&#xff0c;包括读取、删除和设置。SSKeyChain的作者是大名鼎鼎的SSToolkit的作者samsoffes。 项目地址&#xff1a;https://github.com/samsoffes/sskeychain 在工程中加入SSK…

java编程基础素数实验报告,JAVA 基础编程练习题1 (输出素数)

JAVA 基础编程练习题1 (输出素数)JAVA 基础编程练习题1 (输出素数)题目&#xff1a;判断 101-200 之间有多少个素数&#xff0c;并输出所有素数。程序分析&#xff1a;判断素数的方法&#xff1a;用一个数分别去除 2 到 sqrt(这个数)&#xff0c;如果能被整除&#xff0c;则表明…

Go语言在扫码支付系统中的成功实践

今天的内容主要分四个方面。第一&#xff0c;金融支付系统的一些特点;第二&#xff0c;我们的扫码支付系统技术选型;第三&#xff0c;系统迭代过程中的架构演进;第四&#xff0c;与Go相关的一些坑。 金融支付系统的一些特点 图 1 首先从业务流程入手&#xff0c;其实非常简单。…

一站式学习Wireshark(七):Statistics统计工具功能详解与应用

Wireshark一个强大的功能在于它的统计工具。使用Wireshark的时候&#xff0c;我们有各种类型的工具可供选择&#xff0c;从简单的如显示终端节点和会话到复杂的如Flow和IO图表。本文将介绍基本网络统计工具。包括&#xff1a;捕捉文件摘要&#xff08;Summary&#xff09;,捕捉…

UIKit框架各个类的简介

1.UIAcceleration: 被叫做加速事件的一个UIAcceleration类的实例是用来代表即时的三维加速数据。为了接收重力加速度&#xff0c;要注册一个应用应用程序作为一个共享UIAccelerater对象的委托对象&#xff08;参考UIAcceleromete类&#xff09;。 2. UIAccelerater: UIAccelera…

php堆是什么,PHP 堆与堆排序的详解

堆排序&#xff1a;堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆堆实际上是一棵完全二叉树&#xff0c;其任何一非叶节点满足性质&#xff1a;Key[i]<key[2i1]&&Key[i]<key[2i2]或者Key[i]>Key[2i1]&&key>key[2i2]即任何一非叶…

Odoo (OpenERP/TinyERP)-10.0 (Debian 8)

平台&#xff1a; Ubuntu 类型&#xff1a; 虚拟机镜像 软件包&#xff1a; odoo-10.0commercial erp odoo open source openerp tinyerp服务优惠价: 按服务商许可协议 云服务器费用:查看费用 立即部署产品详情 产品介绍Odoo https://www.odoo.com/ &#xff08;前Op…

iOS开发- 蓝牙后台接收数据(BLE4.0)

最近在做一个蓝牙相关的项目, 需要在应用进入后台, 或者手机属于锁屏状态的情况下, 仍然保持蓝牙连接, 并且能正常接收数据。 本来以后会很麻烦, 但是学习了下..发现就2步而已。简单的不能再简单了。 好了。下面是具体实现办法。 1.在xxx-info.plist文件中, 新建一行 Required…

贪心(数据结构):COGS 468. [NOI2010]超级钢琴

★★★☆ 输入文件&#xff1a;piano.in 输出文件&#xff1a;piano.out 简单对比 时间限制&#xff1a;2 s 内存限制&#xff1a;512 MB 超级钢琴 【问题描述】 小Z是一个小有名气的钢琴家&#xff0c;最近C博士送给了小Z一架超级钢琴&#xff0c;小Z希望能够用这架…

java实现选择排序 带打印,选择排序算法的JAVA实现

选择排序算法的JAVA实现package Utils.Sort;/***利用选择排序法对数组排序&#xff0c;数组中元素必须实现了Comparable接口。*/public class ChooseSort implements SortStrategy{/***对数组obj中的元素以选择排序算法进行排序*/public void sort(Comparable[] obj){if (obj …

angularjs初始化时不显示模板内容, 不显示html, 不显示template

template的内容可能在需要的数据准备好之前就显示出来了, ng-cloak可以解决这个问题 ng-cloak <div id"template1" ng-cloak>{{ hello }}</div> <div id"template2" class"ng-cloak">{{ world }}</div>