博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ3617 Best Cow Line 馋
阅读量:4696 次
发布时间:2019-06-09

本文共 1254 字,大约阅读时间需要 4 分钟。

虽然这个问题很简单,但非常好,由于过程是很不错的。发展思路的比较 并鼓励人们,不像有些贪心太偏,推动穷人,但恼人

鉴于长N弦S,然后又空字符串STR。每当有两个选择 1:删S增加虚假的第一要素STR于      2:删S增加最后一个元素STR于

是的STR字典序最小 并输出

開始可能没有什么顾虑的去想 每次比較S的头和尾元素 取小的那个删除并假如STR中。可是若S的头和尾元素一样的话这种方法就不行了,由于先取头或者尾还得看他们之间的元素,这时候是倒着来还是顺着好呢?那就直接拿顺的跟倒的进行字典序的大小比較就好了,这样当头尾相等时就能把他们中间的囊括进去,

做法:

字符串S。然后倒置得到S1,比較大小若S小,则取S的头部元素。若S大则取S的尾部元素,然后再把S倒置。再与它的倒置比較,如此循环的做N次就可以

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long#define LL __int64#define eps 1e-8#define inf 0xfffffff//const LL INF = 1LL<<61;using namespace std;//vector
> G;//typedef pair
P;//vector
> ::iterator iter;////map
mp;//map
::iterator p;string s;string str;string ans;string ch;int main() { int n; bool flag = false; while(cin>>n) { while(n--) { cin>>ch; s += ch; } str = s; reverse(s.begin(),s.end()); int len = s.length(); while(len--) { if(str < s) { ans += str[0]; str.erase(0,1); } else { ans += str[str.length() - 1]; str.erase(str.length() - 1,1); } s = str; reverse(s.begin(),s.end()); } for(int i=0;i

版权声明:本文博客原创文章,博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/yxwkf/p/4757114.html

你可能感兴趣的文章
设置ISE/vivado中默认文本编辑器为gvim
查看>>
Spring 基于注解的AOP实现
查看>>
AVAudioPlayer简易封装
查看>>
swappiness参数设置与内存交换
查看>>
修改es最大返回结果数
查看>>
Android实战技巧之六:PreferenceActivity使用详解
查看>>
SUSE12 网卡配置、SSH远程配置、解决CRT密钥交换失败,没有兼容的加密程序
查看>>
平台网盘
查看>>
原生ajax jq跨域
查看>>
在MySQL中操作日期和时间
查看>>
WebService&CXF
查看>>
hibernate框架环境搭建与使用
查看>>
不同大小的字体底部对齐
查看>>
@ControllerAdvice注解的使用
查看>>
pfx2pvk
查看>>
python3 生成随即激活码
查看>>
Codeforces 260 A - A. Laptops
查看>>
Java中System类的相关应用
查看>>
spring mvc(注解)上传文件的简单例子
查看>>
【转】Zend_Json学习
查看>>