51nod 1335 子序列翻转
来源:互联网 发布:apache subversion 编辑:程序博客网 时间:2024/06/15 22:39
多组测试数据,第一行一个整数T,表示测试数据数量,1<=T<=5之后有T组结构相同的数据:每组包含一行一个字符串s,其中s的长度L满足1<=L<=2500且s只包含小写字母'a'~'z'
一组数据输出一行两个整数,即最优的翻转子序列的区间索引x,y
2abdcaabbcc
2 30 0
出发点就固定的,就是第一个不在自己应该在的地方的那个数。如何找这个位置,就是排序一下对比着找即可。
之后从当前出发点开始往后找,如果第i个小于出发点,交换,比较一下总串大小,如果小于之间出现过的最小值,更新y。
之后i继续往后找。最后输出y即可
#include <bits/stdc++.h>using namespace std;string str1,str2;string jiaohuan(string s,int x,int y){ for(int i=x;i<=(x+y)/2;i++) { swap(s[i],s[y-i+x]); } return s;}int main(){ int t,x,y; cin>>t; while(t--) { x=0; y=0; cin>>str1; str2=str1; int len=str2.size(); sort(&str2[0],&str2[0]+len); for(int i=0;i<len;i++) { if(str1[i]>str2[i]) { x=i; y=i; break; } } string str3=str1,str4; for(int i=x+1;i<len;i++) { if(str1[i]<=str1[x]) { str4=jiaohuan(str1,x,i); if(str4<str3) { str3=str4; y=i; } } } cout<<x<<" "<<y<<endl; }}
- 51nod 1335 子序列翻转
- 51nod 1335 子序列翻转
- 51Nod-1335-子序列翻转
- 子序列个数 51Nod
- 选择子序列 51Nod
- 子序列翻转
- 【子序列个数】51nod 1202 子序列个数
- 51nod 1134 最长递增子序列
- 51nod 1202:子序列个数
- 51nod 1134 最长递增子序列
- 51nod 最长公共子序列问题
- 51nod 最长公共子序列问题
- 51nod 1202 子序列个数
- 51nod 1134 最长递增子序列
- 51nod最长公共子序列
- [51nod]1134 最长递增子序列
- 51nod-最长公共子序列问题
- 51nod最长公共子序列问题
- spring配置error2 AOP事务配置缺少包
- Python中的metaclass
- NYOJ J : CTX学长的找位置游戏
- static、final、static final 用法
- Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释
- 51nod 1335 子序列翻转
- 设计电路加法实验
- Django复习:视图和模版
- Hi3519V101上移植QT4.8.6
- SDUT-2482
- 网络流建模(三)
- java实现图的遍历(深度优先遍历和广度优先遍历) package arithmetic.graphTraveral; import java.util.LinkedList; import java
- Nginx负载均衡实践踩坑
- 程序设计基础2