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

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

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

目标是要构造字典序尽可能小的字符串T

模拟情景,想出来一个有意思的比喻,写出来程序,俩个推土机开始在互相看不到对方的直线工作推物品,每个人每次走一步,并且先将物品重量较小的先推走, 由于没有手机,只能通过副驾驶通信员互相沟通,谁的前方物品较轻先推走,于是通信员下车检查,物品,当A,B通信员发现一方较轻时,就全部回各自的车报告向前走一步或者不走。但是通信员发现前方各自的第一个物品重量相同,就各自继续向前走一步直到发现重量较轻的返回各自的车内,报告走一步后者是不走。当通信员发现前方各自的重量都是一样的就对对方说,我们谁先走都行。互相谦让,选出一个通信员,回到车内,向前走一步。 直到推掉所有的物品,俩个车相见完成任务。

#include<stdio.h>
const int MAX=100;
int N;
char S[MAX+1];
void f(){
int a=0,b=N-1;
int left;
while(a<=b){//当俩个推土机还没有遇见的时候
for(int i=0;a+i<=b;i++){ //A/B通信员下车报告
if(S[a+i]<S[b-i]){ //A通信员发现前方物品重量较小
left=1;    break;
}else if(S[a+i]>S[b-i]){ //B通信员发现前方物品较小
left=0; break;
}
}
if(left) printf("%c",S[a++]); //推土机向前开始工作
else    printf("%c",S[b--]);
}
}
int main(){
while(scanf("%d",&N)){
//一定注意接收上一个字符
getchar();
for(int i=0;i<N;i++){
scanf("%c",&S[i]);
}
f();
}
return 0;
}

转载于:https://www.cnblogs.com/sky-z/p/4413873.html

Best Cow Line (POJ 3217)相关推荐

  1. 贪心  POJ - 3617 ​​​​​​​Best Cow Line

    Best Cow Line POJ - 3617 FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of ...

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

    POJ 3617 Best Cow Line Time Limit: 1000MS Memory Limit: 65536K [Description] [题目描述] FJ is about to t ...

  3. POJ 3617 Best Cow Line 贪心算法

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

  4. poj Best Cow Line

    Best Cow Line 题意: 就是说给你一系列字母, 要你取出字典序最小的字符串,每次只能从最上面或者最下面进行取,每次从上和从下选择最小的,若相等则向中间搜索,找到较小的. 注意: 1.先吸收 ...

  5. POJ 3618 Best Cow Line(贪心算法)

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

  6. P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold(加强版)(贪心+hash哈希)

    P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold(加强版)(贪心+hash哈希) 洛谷上这道水题丧心病狂地把数据范围加到了500000 普通的做法肯定A不了了, ...

  7. H - Cow Contest POJ - 3660(Floyd 传递闭包)

    H - Cow Contest POJ - 3660 题意: 有 n 头牛比赛,边 1 -> 2 代表 1 能赢 2 ,给你 m 条边,问能确定出多少头牛的名次? 思路: 如果 1->2 ...

  8. D - Silver Cow Party POJ - 3268

    D - Silver Cow Party POJ - 3268 dijkstra 是 O(n2),堆优化一下, O(nlogn) 对每个点跑一次 dj, 取 max(dis(x->i)+dis( ...

  9. 【BZOJ】3301: [USACO2011 Feb] Cow Line(康托展开)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3301 其实这一题很早就a过了,但是那时候看题解写完也是似懂非懂的.... 听zyf神犇说是康托展开, ...

  10. P2870 [USACO07DEC]Best Cow Line G

    P2870 [USACO07DEC]Best Cow Line G 题意: 给你一个字符串,每次从首或尾取一个字符组成字符串,问所有能够组成的字符串中字典序最小的一个. 题解: 现在要组成字典序最小的 ...

最新文章

  1. window程序设计学会_是时候我们学会设计合适的饼图了
  2. snmp v3的安全配置 snmp认证与加密配置(53)
  3. 基于mysql的springmvcjar_糊涂jar_SpringMVC+Spring+Mybatis项目实战[SSM/MySQL/AJAX/IDEA]_Java视频-51CTO学院...
  4. c语言向自定数组_C语言怎么向自定义函数中传入一个数组,处理完再返回新的数组?...
  5. recyclerview简单实现单选多选反选全选
  6. python基础之模块初识
  7. 免费复制百度文库的方法
  8. 常见EDA软件的license管理
  9. AD学习之旅(10)— 导入元器件到PCB文件
  10. python执行外部方法_python执行外部程序的常用方法小结
  11. Markdown怎么加入emoji
  12. ftp工具 绿色,细数3款绿色 ftp工具
  13. vs无法产生pdb文件,也就无法断点调试
  14. UDP与TCP协议详解
  15. 《视频直播技术详解》之(三):编码和封装
  16. linux 优化脚本 关闭服务器,linux服务器一键优化脚本
  17. mac 下 vimrc 配置
  18. 联想V450中禁用触摸鼠标(MousePad/TouchPad)的3种方法
  19. 焊接变形的原因以及防止焊接变形的措施
  20. 湖北黄冈市投资的失败经验 2021-05-21

热门文章

  1. 201671010128 2017-10-08《Java程序设计》之接口与内部类
  2. 自动化测试基础篇--Selenium中数据参数化之TXT
  3. Linux学习总结(九)—— CentOS常用软件安装:中文输入法、Chrome
  4. JDBC:数据库操作:处理大对象CLOB数据
  5. HDOJ 1106 排序
  6. MongoDB学习笔记~官方驱动的原生Curd操作
  7. 高并发高流量网站架构[转]
  8. 卓越、当当、京东三大广告联盟比较
  9. 19-matlab知识点复习二
  10. rsync 07-confxml.xml配置文件