题目链接:点击查看

题目大意:给出一个字符串,求其最小表示法所代表的下标

题目分析:最小表示法的模板题,因为N给到了1e5,如果是正常的求最小值的话,时间复杂度是n*lens级别的,但最小表示法可以利用字符串循环的性质将时间复杂度降到O(n)级别,也就完美解决了这个问题,模板题,直接上代码了,也就是下标有所不同,稍微修改一下模板的内部实现就好了

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<sstream>
#include<unordered_map>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=2e5+100;char s[N]; int n;int get_minstring()
{memcpy(s+n,s,n);int i=0,j=1,k;while(i<n&&j<n){for(k=0;k<n-1&&s[i+k]==s[j+k];k++);if(k==n-1)break;if(s[i+k]>s[j+k]){i=i+k+1;if(i==j)i++;}else{j=j+k+1;if(i==j)j++;}}return min(i,j);
}int main()
{
//  freopen("input.txt","r",stdin);
//  ios::sync_with_stdio(false);int w;cin>>w;while(w--){scanf("%d%s",&n,s);printf("%d\n",get_minstring());}return 0;
}

UVA - 1314 Hidden Password(最小表示法)相关推荐

  1. 字符串循环同构的最小表示法(转)

    循环字符串的最小表示法的问题可以这样描述: 对于一个字符串S,求S的循环的同构字符串S'中字典序最小的一个. 由于语言能力有限,还是用实际例子来解释比较容易: 设S=bcad,且S'是S的循环同构的串 ...

  2. 2018.07.17 洛谷P1368 工艺(最小表示法)

    传送门 好的一道最小表示法的裸板,感觉跑起来贼快(写博客时评测速度洛谷第二),这里简单讲讲最小表示法的实现. 首先我们将数组复制一遍接到原数组队尾,然后维护左右指针分别表示两个即将进行比较的字符串的头 ...

  3. poj1509最小表示法

    题意:       给你一个循环串,然后找到一个位置,使得从这个位置开始的整个串字典序最小. 思路:       最小表示法的建档应用,最小表示法很好理解,就点贪心的意思,一开始我们枚举两个起点i,j ...

  4. hdu3374最小表示法+KMP

    题意:       给你一个最长100W的串,然后让你找到最小同构子串,还有最大同构子串的下标,最小同构子串就是把字符串连接成一个环,然后选择一个地方断开,得到的一个ASCII最小的子串(求最大同理) ...

  5. 【运筹学】运输规划、表上作业法总结 ( 运输规划模型 | 运输规划变量个数 | 表上作业法 | 最小元素法 | 差额 Vogel 法 ★ | 闭回路法 ) ★★★

    文章目录 一.运输规划模型 1.产销平衡模型 2.产销不平衡模型 二.运输规划数学模型变量个数 三.表上作业法 四.表上作业法 : 求初始基可行解 1.最小元素法 2.差额法 ( Vogel ) 推荐 ...

  6. 【运筹学】表上作业法 ( 示例 | 使用 “ 最小元素法 “ 找初始基可行解 )

    文章目录 一.运输规划问题 二.找初始基可行解 一.运输规划问题 运输规划问题 : B1\rm B_1B1​ B1\rm B_1B1​ B1\rm B_1B1​ B1\rm B_1B1​ 产量 A1\ ...

  7. 【运筹学】表上作业法 ( 最小元素法分析 | Vogel 方法 )

    文章目录 一." 最小元素法 " 分析 二.Vogel 方法 ( 差额法 ) 一." 最小元素法 " 分析 在上一篇博客 [运筹学]表上作业法 ( 求初始基可行 ...

  8. 【运筹学】表上作业法 ( 求初始基可行解 | 最小元素法 )

    文章目录 一.表上作业法 第一步 : 确定初始基可行解 二.最小元素法 一.表上作业法 第一步 : 确定初始基可行解 运输问题如下 : 下面的表格代表 333 个产地 , 444 个销地 的运输规划问 ...

  9. 字符串的最大最小表示法 模板

    #include<iostream> #include<string> using namespace std; /* 用最小表示法求字符串S的最小字典序 返回字典序最小的串的 ...

最新文章

  1. 推荐8个可以显著提高工作效率的办公神器
  2. R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签
  3. 东软java实训第一个项目人力资源管理
  4. eclipse 的习惯配置
  5. 2021-03-16 汽车二自由度操纵稳定性 Matlab simulink
  6. AI嵌入式开发:NVIDIA Jetson Xavier NX刷机(2)
  7. c#中使用XSLT将xml文档转换为html文档方法
  8. 想问一下C++里queue要怎么遍历
  9. JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址
  10. c语言程序设计实验指导实验报告,C语言程序设计实验指导及报告.doc
  11. 《推荐系统笔记(七)》因子分解机(FM)和它的推广(FFM、DeepFM)
  12. php 等比例缩略图,PHP等比例生成缩略图
  13. python打印换行符_在Python编程中不使用换行符进行打印
  14. pip 清华大学镜像_pip源很慢,更改成清华的镜像地址
  15. Python成员运算符
  16. 解密jQuery内核 DOM操作
  17. kbhit(), bioskey(), system(pause)
  18. QT qss选择器------后代选择器
  19. R语言科学计数法数据改变/丢失/失准,取消科学计数法的原因和解决方法
  20. 为什么软件开发很难外包

热门文章

  1. BaseExecutor.query()-创建CacheKey
  2. 常用的函数式接口_Consumer接口练习_字符串拼接输出
  3. BufferedInputStream_字节缓冲输入流
  4. IDEA与tomcat相关配置
  5. 摆放家具-完成添加家具方法
  6. 字符串-文本对齐方法演练
  7. Spring Boot整合Spring Data Redis-整合步骤
  8. Spring Cloud Stream的使用(上)
  9. python log日志_python脚本攻略之log日志
  10. 用 Redis 实现分布式锁(Java 版)