CF708A Letters Cyclic Shift

题目链接:CF708A Letters Cyclic Shift

题意:一次变换指将字母变为它前面一个字母,例如a变成zb变成a,给定字符串,找出一个非空子串进行变换使得改变后字典序尽可能小

要求字典序最小,首先想到从最左端开始改变

那么这样做一定是最小的吗?例如下面这种

aabcdefabb

如果改变了第一个字符a,它会变成z,字典序不降反升

我们可以初步得到结论,从第一个不为a的位置开始改变,能得到最小结果

再看题目,要求改变的是非空子串,因此只能改变到下一个不为a的位置

因此aabcdefabb改变后变为aaabcdeabb

还有一种情况要特判 例如aaaaa

题目要求你必须选择一个非空子串,这种情况只要把最后一个字符改变就行了

代码如下

#include<bits/stdc++.h>
using namespace std;
#define R register
string s;
bool flag;
signed main()
{cin>>s;for(R int i=0; i<s.size(); i++)if(s[i]^97) //s[i]!='a'{s[i]--;flag=1;}else if(flag) return cout<<s,0;if(!flag)s[s.size()-1]='z';//特判cout<<s;return 0;
}

转载请说明出处

CF708A Letters Cyclic Shift 题解相关推荐

  1. Codeforces Problem 708A Letters Cyclic Shift(implementation)

    此文章可以使用目录功能哟↑(点击上方[+]) 比赛链接→AIM Tech Round 3 (Div. 1)  Codeforces Problem 708A Letters Cyclic Shift ...

  2. codeforces 708A - Letters Cyclic Shift

    问题描述 题目链接:http://codeforces.com/problemset/problem/708/A 输入字符串, 用至少一个长度的子串,按照一定规则将原字符串替换,使得变化后的字符串的字 ...

  3. ECJTUACM16 Winter vacation training #4 题解源码

    https://vjudge.net/contest/149692#overview 这周一VJ比赛,题解&源码已完成! A.................................. ...

  4. 2016区域赛前冲刺训练

    UPD 2016.10.23 shift-and (2题) Codeforces 训练 现在已经完成了: 191 [Codeforces Round #377] (6/6) Div 2 A Buy a ...

  5. Reordering the Cows

    牛客网传送 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format:%lld 链接:https://ac.nowcode ...

  6. Codeforces Round #376 (Div. 2) D. 80-th Level Archeology —— 差分法 + 线段扫描法

    题目链接:http://codeforces.com/contest/731/problem/D D. 80-th Level Archeology time limit per test 2 sec ...

  7. ZJOI2018游记Round1

    广告 ZJOI2018Round2游记 All Falls Down 非常感谢学弟学妹们捧场游记虽然这是一篇假游记 ZJOI Round1今天正式落下帷幕.在这过去的三天里遇到了很多朋友,见识了很多有 ...

  8. Coderforces 字符串水题合集

    今天我们聊聊 Coderforces 字符串水题合集. 字符串就是string. 这是string的百度翻译,我们要谈的是画框的.↓ string是C++.java.VB等编程语言中的字符串,字符串是 ...

  9. 深度学习的第一性原理!

    [专栏:研究思路]我们认为,人工智能进入了新的拐点.在一个后深度学习时代,不同的学者对未来智能发展道路的理解逐渐清晰,当然也逐渐开始分化,由此导致了开展布局完全不同的研究工作.智源社区将系统分析全球范 ...

最新文章

  1. LVS负载均衡之持久性连接介绍(session篇)
  2. 用了GradientDrawable后,当点击控件时,控件大小发生变化
  3. mysql 关闭锁_mysql数据库取消锁
  4. Android service 小研究
  5. 使命召唤ios_使命召唤的精巧UI:战地
  6. 3dmax模型转换为*.FLT格式的建模要点
  7. 521分云南考生被北大录取!仅超一本线1分
  8. java获取文件大小_Java中获取文件大小的详解及实例代码
  9. C++ 类和对象成员特性
  10. Kaggle官网免费课程:从Python到机器学习,4小时学完一门,48小时掌握数据科学...
  11. java iso-8859-1_如何在Java中的ISO-8859-1和UTF-8之间转换?
  12. 转载:做了5年运维,靠着这份监控知识体系,我从3K变成了40K
  13. typescript map转对象_TypeScript 快速上手及学习笔记 - JoeYoung
  14. 免费 | 开源操作系统年度盛会最新日程曝光,邀您一同开启烧脑模式!
  15. python指定时间执行程序_如何在特定时间执行程序
  16. python中https请求的封装_python接口自动化9-https请求(SSL)
  17. 联系人备份--vcf
  18. 从零开始学前端:查找替换+进度条+随机颜色+随机选择今日任务 --- 今天你学习了吗?(JS:Day18)
  19. Unity之ASE实现冰冻效果
  20. android 画图

热门文章

  1. mac中vs远程linux,教会你在Mac上登陆远程Linux服务器和Windows Server
  2. 什么叫锭材综合成材率?如何计算?
  3. java ccf认证解答_CCF认证考试(java)---窗口
  4. OK6410开发板Uboot学习总结----(三)从SD卡启动分析
  5. 快速排序(简单易懂的代码)
  6. MPLS LDP:标签分发协议
  7. Python 全栈系列97 - 资源梳理
  8. IOS APP因为广告方面被拒解决方案
  9. Win7 Paimei 安装
  10. 三十二、精灵图字体图标