Description 

给定长度为n的字符串S,要构造一个长度为n的字符串T。起初,T是空串,随后反复进行下列任意操作: 

1、从S的头部删除一个字符,加到T的尾部 

2、从S的尾部删除一个字符,加到T的尾部 

目标是构造字典序最小的字符串T(1<=n<=2000) 
Input 

第一行为字符串长度n,之后n行每行一个字符,字符串只包含大写字母 
Output 

输出字典序最小的字符串T,输出时一行只能输出80个字符 
Sample Input 














Sample Output 

ABCBCD

思路:每次比较头尾大小,如果相等就继续比较第二个和倒数第二个,贪心的思想。

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=2005;
char str[maxn];
int n;
void pailie()
{
int a=0,b=n-1,count=0;
while(a<=b)
{
bool flag=true;
for(int i=0;i<=b-a;++i)
{
if(str[a+i]>str[b-i])
{
flag=false;
break;
}
else if(str[a+i]<str[b-i])
{
flag=true;
break;
}
}
if(flag)
{
putchar(str[a++]);
++count; //计数,一行满80个字符就换行
}
else
{
putchar(str[b--]);
++count;
}
if((count+1)%80 == 0)
putchar('\n');
}
//putchar('\n');
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;++i)
cin>>str[i];
pailie();
return 0;
}

POJ3617 Best Cow Line【贪心】的更多相关文章

  1. poj3617 best cow line(贪心题)

    Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 32687   Accepted: 8660 De ...

  2. POJ 3617 Best Cow Line 贪心算法

    Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26670   Accepted: 7226 De ...

  3. poj 3617 Best Cow Line 贪心模拟

    Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 42701   Accepted: 10911 D ...

  4. poj3617 Best Cow Line(贪心,字典序问题)

    https://vjudge.net/problem/POJ-3617 这类字符串处理字典序问题经常用到贪心, 每决定输出一个字符之前,都要前后i++,j--逐个比大小,直至比出为止. #includ ...

  5. POJ 3617 Best Cow Line (贪心)

    题意:给定一行字符串,让你把它变成字典序最短,方法只有两种,要么从头部拿一个字符,要么从尾部拿一个. 析:贪心,从两边拿时,哪个小先拿哪个,如果一样,接着往下比较,要么比到字符不一样,要么比完,也就是 ...

  6. POJ3617 Best Cow Line

    其实是学习参考了算法书的代码,但仍然是我自己写的,有小差别.贪心类型. #include <iostream> using namespace std; int main() { int ...

  7. POJ3617 Best Cow Line 馋

    虽然这个问题很简单,但非常好,由于过程是很不错的.发展思路的比较 并鼓励人们,不像有些贪心太偏,推动穷人,但恼人 鉴于长N弦S,然后又空字符串STR.每当有两个选择 1:删S增加虚假的第一要素STR于 ...

  8. bzoj4278[ONTAK2015]Tasowanie & bzoj1692[USACO 2007Dec]队列变换(Best Cow Line) 贪心正确性证明

    做法网上到处都有就不说了. 这题其实是之前做的….不过由于人太傻现在才想明白比较字典序进行贪心的正确性…. 方便起见,在两个串的最右端都加上很大但不相同的字符,避免第lcp+1个字符不存在的边界. 如 ...

  9. POJ 3617 Best Cow Line ||POJ 3069 Saruman's Army贪心

    带来两题贪心算法的题. 1.给定长度为N的字符串S,要构造一个长度为N的字符串T.起初,T是一个空串,随后反复进行下面两个操作:1.从S的头部删除一个字符,加到T的尾部.2.从S的尾部删除一个字符,加 ...

随机推荐

  1. ExtJs4.1布局具体解释

    Border布局: Ext.onReady(function(){     Ext.QuickTips.init();     Ext.create('Ext.container.Viewport', ...

  2. IOS6.0自带下拉刷新控件UIRefreshControl

    1.UIRefreshControl必需要在IOS6.0以后才干使用,同一时候他仅仅能在UITableViewController类中才干够使用 2.使用比較简单 self.refreshContro ...

  3. Struts 配置文件

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="htt ...

  4. [BZOJ 1718] Redundant Paths

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1718 [算法] 用Tarjan算法找出所有e-DCC(边-双联通分量),然后将这张图 ...

  5. bzoj2595 [Wc2008]游览计划——斯坦纳树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2595 今天刚学了斯坦纳树,还不太会,写一道题练习一下: 参考了博客:http://www.c ...

  6. Java数据库编程及Java XML解析技术

    1.JDBC概述 A.  什么是JDBC? Java DataBase Connectivity:是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成.通过这些类和接口 ...

  7. Win7的虚拟Wi-Fi

    前几天无意中发现,Win7的硬件驱动里有个叫Microsoft Virtual WiFi Miniport Adapter的东东,从网上查了一下,可以用来组建临时网络,共享Internet.一块无线网 ...

  8. 分别使用Hadoop和Spark实现TopN(1)——唯一键

    0.简介 TopN算法是一个经典的算法,由于每个map都只是实现了本地的TopN算法,而假设map有M个,在归约的阶段只有M x N个,这个结果是可以接受的并不会造成性能瓶颈. 这个TopN算法在ma ...

  9. lnmp 安装FTP服务 并配置FTP用户

    lnmp 默认是不带FTP服务的,需要的童鞋要自行安装.步骤也很简单 一,进入lnmp目录,找到pureftpd.sh 二,直接运行该脚本 ./pureftpd.sh 按任意键开始安装,等待,安装成功 ...

  10. 利用POPAnimatableProperty属性来实现动画倒计时

    POPAnimatableProperty *prop = [POPAnimatableProperty propertyWithName:@"countdown" initial ...