UVA - 1314 Hidden Password(最小表示法)
题目链接:点击查看
题目大意:给出一个字符串,求其最小表示法所代表的下标
题目分析:最小表示法的模板题,因为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(最小表示法)相关推荐
- 字符串循环同构的最小表示法(转)
循环字符串的最小表示法的问题可以这样描述: 对于一个字符串S,求S的循环的同构字符串S'中字典序最小的一个. 由于语言能力有限,还是用实际例子来解释比较容易: 设S=bcad,且S'是S的循环同构的串 ...
- 2018.07.17 洛谷P1368 工艺(最小表示法)
传送门 好的一道最小表示法的裸板,感觉跑起来贼快(写博客时评测速度洛谷第二),这里简单讲讲最小表示法的实现. 首先我们将数组复制一遍接到原数组队尾,然后维护左右指针分别表示两个即将进行比较的字符串的头 ...
- poj1509最小表示法
题意: 给你一个循环串,然后找到一个位置,使得从这个位置开始的整个串字典序最小. 思路: 最小表示法的建档应用,最小表示法很好理解,就点贪心的意思,一开始我们枚举两个起点i,j ...
- hdu3374最小表示法+KMP
题意: 给你一个最长100W的串,然后让你找到最小同构子串,还有最大同构子串的下标,最小同构子串就是把字符串连接成一个环,然后选择一个地方断开,得到的一个ASCII最小的子串(求最大同理) ...
- 【运筹学】运输规划、表上作业法总结 ( 运输规划模型 | 运输规划变量个数 | 表上作业法 | 最小元素法 | 差额 Vogel 法 ★ | 闭回路法 ) ★★★
文章目录 一.运输规划模型 1.产销平衡模型 2.产销不平衡模型 二.运输规划数学模型变量个数 三.表上作业法 四.表上作业法 : 求初始基可行解 1.最小元素法 2.差额法 ( Vogel ) 推荐 ...
- 【运筹学】表上作业法 ( 示例 | 使用 “ 最小元素法 “ 找初始基可行解 )
文章目录 一.运输规划问题 二.找初始基可行解 一.运输规划问题 运输规划问题 : B1\rm B_1B1 B1\rm B_1B1 B1\rm B_1B1 B1\rm B_1B1 产量 A1\ ...
- 【运筹学】表上作业法 ( 最小元素法分析 | Vogel 方法 )
文章目录 一." 最小元素法 " 分析 二.Vogel 方法 ( 差额法 ) 一." 最小元素法 " 分析 在上一篇博客 [运筹学]表上作业法 ( 求初始基可行 ...
- 【运筹学】表上作业法 ( 求初始基可行解 | 最小元素法 )
文章目录 一.表上作业法 第一步 : 确定初始基可行解 二.最小元素法 一.表上作业法 第一步 : 确定初始基可行解 运输问题如下 : 下面的表格代表 333 个产地 , 444 个销地 的运输规划问 ...
- 字符串的最大最小表示法 模板
#include<iostream> #include<string> using namespace std; /* 用最小表示法求字符串S的最小字典序 返回字典序最小的串的 ...
最新文章
- 推荐8个可以显著提高工作效率的办公神器
- R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签
- 东软java实训第一个项目人力资源管理
- eclipse 的习惯配置
- 2021-03-16 汽车二自由度操纵稳定性 Matlab simulink
- AI嵌入式开发:NVIDIA Jetson Xavier NX刷机(2)
- c#中使用XSLT将xml文档转换为html文档方法
- 想问一下C++里queue要怎么遍历
- JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址
- c语言程序设计实验指导实验报告,C语言程序设计实验指导及报告.doc
- 《推荐系统笔记(七)》因子分解机(FM)和它的推广(FFM、DeepFM)
- php 等比例缩略图,PHP等比例生成缩略图
- python打印换行符_在Python编程中不使用换行符进行打印
- pip 清华大学镜像_pip源很慢,更改成清华的镜像地址
- Python成员运算符
- 解密jQuery内核 DOM操作
- kbhit(), bioskey(), system(pause)
- QT qss选择器------后代选择器
- R语言科学计数法数据改变/丢失/失准,取消科学计数法的原因和解决方法
- 为什么软件开发很难外包