• 题意:有一个长度为\(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;
    }

最新文章

  1. Shader 学习笔记
  2. css 温故而知新 slideDown/slideUp 新思路
  3. javascript中的链表结构—双向链表
  4. 【转】Oracle数据库中Sequence的用法
  5. makefile实例(2)-多个文件实例
  6. 先声明再定义的必要性 .xml
  7. VB-获取某字符在其中出现的次数
  8. UCOS 堆栈大小 计算 (堆栈的决定性因素)
  9. WPF 绑定
  10. voa 2015 / 4 / 27
  11. Zookeeper 快速入门(上)
  12. 用pyinstaller打包python程序,解决打包时的错误:Cannot find existing PyQt5 plugin directories
  13. SQL基本注入演示
  14. docker(ce) on Ubuntu
  15. 【Selenium-WebDriver自学】Selenium-RC脚本编写(十)
  16. 助你简化开发的 jQuery 插件
  17. latex中文模板
  18. (LeetCode 41)First Missing Positive
  19. 如何检查 IP是否冲突了
  20. Android的静默安装

热门文章

  1. Docker 镜像管理及基础命令(二)
  2. 【葵花宝典】一天掌握Docker
  3. Ubuntu Terminal命令行新建仓库并推送到远程仓库
  4. Ribbon负载均衡服务调用
  5. 【转】Js中的window.parent ,window.top,window.self 详解
  6. JVM(二)类加载的时机及其过程
  7. CentOS7,非LVM根分区扩容步骤:
  8. Let’s Encrypt/Certbot移除/remove/revoke不需要的域名证书
  9. javamail发送邮件,支持yahoo,google,163.com,qq.com邮件发送
  10. 你应该了解的25个JS技巧