CodeCraft-20 (Div. 2) B. String Modification (字符串,规律)

题意:有一个长度为\(n\)的字符串,你可以选取一个值\(k(1\le k \le n)\),然后遍历字符串,每次将区间长度为\(k\)的字符串反转,求反转后字典序最小的字符串,并输出\(k\)的值.
题解:这题我是打表找规律写的,观察样例不难发现,当区间长度为\(k\)时,答案字符串就是将前\(k-1\)个字符移到了尾部,并且,假如\(k\)的奇偶性和\(n\)相同,那么这前\(k-1\)个字符就要反转,所以我们只要遍历\(k\),然后模拟维护一个字典序最小的字符串即可.
代码:
int t;
int n;
string s; int main() {
ios::sync_with_stdio(false);cin.tie(0);
cin>>t;
while(t--){
cin>>n>>s;
string ans=s;
int cnt=1;
for(int i=1;i<=n;++i){
string tmp1=s.substr(i-1,n);
string tmp2=s.substr(0,i-1);
if(i%2==n%2)
reverse(tmp2.begin(),tmp2.end());
tmp1+=tmp2;
if(tmp1<ans){
ans=tmp1;
cnt=i;
}
}
cout<<ans<<endl;
cout<<cnt<<endl;
} return 0;
}
CodeCraft-20 (Div. 2) B. String Modification (字符串,规律)的更多相关文章
- Codeforce-CodeCraft-20 (Div. 2)-B. String Modification (找规律+模拟)
Vasya has a string s of length n. He decides to make the following modification to the string: Pick ...
- .NET面试题解析(03)-string与字符串操作
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 字符串可以说是C#开发中最常用的类型了,也是对系统性能影响很关键的类型,熟练掌握字符串的操作非常重要. 常 ...
- string.Format字符串格式说明
先举几个简单的应用案例: 1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) string.Format("{0:C}",0.2) 结果为:¥0.20 ...
- C# 数据类型之 String(字符串)
Ø 简介 在开发中最常见的数据类型就是 String 类型,即字符串类型.为什么要单独讨论下这个类型,是因为:它是系统内置的基础数据类型:它的使用频率非常高:它是一个特殊的引用类型.其实大家都会使用 ...
- string.Format字符串格式说明(转)
转自:http://blog.csdn.net/dl020840504/article/details/8921875 先举几个简单的应用案例: 1.格式化货币(跟系统的环境有关,中文系统默认格式 ...
- string.Format字符串格式化说明
1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0 ...
- string.Format字符串格式化说明(转)
string.Format字符串格式化说明 www.111cn.net 编辑:Crese 来源:转载 先举几个简单的应用案例: 1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统 ...
- [CareerCup] 1.2 Reverse String 翻转字符串
1.2 Implement a function void reverse(char *str) in C or C++ which reverses a null-terminated string ...
- char型字符串(数组)与string型字符串 指针与引用
一.常指针: int *const p; //指针不可改变,但是指针指向的数据可以改变. 指向常量的指针: const int *p; //指针可以改变,但是指针指向的数据不可以改变. 指 ...
随机推荐
- 安装Tomcat 9
文章目录 访问Tomcat官网 选择下载所需的软件包 安装Tomcat 测试安装 访问Tomcat官网 Tomcat官方的下载地址为:https://tomcat.apache.org/downloa ...
- LeetCode938. 二叉搜索树的范围和
题目 1 class Solution { 2 public: 3 int sum = 0; 4 int rangeSumBST(TreeNode* root, int low, int high) ...
- egret 解决游戏loading前的黑屏
一.问题 egret游戏loading界面的制作可以参考这个,我就不多赘述啦,步骤也比较详细<Egret制作Loading页面及分步加载资源教程>. 后面我发现即便加上loading,在游 ...
- Cookie&Session&Jsp总结
知识点梳理 Cookie&Session&Jsp 1 会话技术 1.1 会话管理概述 1.1.1 会话技术介绍 会话:浏览器和服务器之间的多次请求和响应 (一次对话) 为了实现一些功能 ...
- Py数据类型—列表,字典,元组
列表:数据类型list. 写法li=[1,12,9,"sdsad",["ad","dd"] ].用中括号括起来,用逗号分割每个元素列表中元素 ...
- Markdown里常用的HTML元素
转义:\ 换行:<br/> 红色文字:<font color=#FF0000>字体改成红色了</font> A标签 新窗口:<a href="xxx ...
- 事件循环Event loop到底是什么
摘要:本文通过结合官方文档MDN和其他博客深入解析浏览器的事件循环机制,而NodeJS有另一套事件循环机制,不在本文讨论范围中.process.nextTick和setImmediate是NodeJS ...
- __new__() to create it, and __init__() to customize it 类方法 实例方法
https://docs.python.org/3/reference/datamodel.html#object.__init__
- 成功解决Git:fatal: refusing to merge unrelated histories
Get 报错 如果合并了两个不同的开始提交的仓库,在新的 git 会发现这两个仓库可能不是同一个,为了防止开发者上传错误,于是就给下面的提示 fatal: refusing to merge unre ...
- java实现注销登录
servlet HttpServletRequest request HttpSession session=request.getSession(); session.removeAttribute ...