最小标示法模板 poj1509
最小标示法:给定一个字符串,不断将其最后一个字符放到开头,最终会得到n个字符串,称这n个字符串循环同构,这些字符串中字典序最小的一个,就是最小表示法
#include<iostream> #include<cstring> #include<cstdio> using namespace std; #define maxn 1000005int len; int main(){int t;cin>>t;while(t--){char s[maxn<<1]={};cin>>(s+1);len=strlen(s+1);for(int i=1;i<=len;i++)s[len+i]=s[i];int j=2,i=1;while(i<=len && j<=len){int k=0;while(s[i+k]==s[j+k] && k<len)k++;if(s[i+k]>s[j+k])i=i+k+1;else j=j+k+1;if(i==j)j++;}cout<<min(i,j)<<'\n';} }
下面是进阶指南的模板
int n=strlen(s+1); for(int i=1;i<=n;i++)s[n+i]=s[i]; int i=1,j=2,k; while(i<=n && j<=n){for(k=0;k<=n;&&s[i+k]==s[j+k];k++);if(k==n)break;if(s[i+k]>s[j+k])i=i+k+1;else j=j+k+1;if(i==j)j++; } ans=min(i,j);
转载于:https://www.cnblogs.com/zsben991126/p/10471669.html
最小标示法模板 poj1509相关推荐
- 字符串的最大最小表示法 模板
#include<iostream> #include<string> using namespace std; /* 用最小表示法求字符串S的最小字典序 返回字典序最小的串的 ...
- 『最小表示法 Necklace』
最小表示法 这是一个简单的字符串算法,其解决的问题如下: 给定一个字符串\(S\),长度为\(n\),如果把它的最后一个字符不断放到最前面,会得到\(n\)个不同的字符串,那么我们称这\(n\)个字符 ...
- BZOJ2176Strange string——最小表示法
题目描述 给定一个字符串S = {S1, S2, S3 - Sn}, 如果在串SS中, 子串T(|T| = n)为所有长度为n的SS的字串中最小的(字符串的比较), 则称T为"奇怪的字串&q ...
- 树的同构模板题(法1.最小表示法+法2.树哈希)
树的同构 problem solution code solution code problem 模板题 solution Ⅰ. 最小表示法 将树转化为 0/10/10/1 括号序列:从根开始 dfs ...
- poj1509最小表示法
题意: 给你一个循环串,然后找到一个位置,使得从这个位置开始的整个串字典序最小. 思路: 最小表示法的建档应用,最小表示法很好理解,就点贪心的意思,一开始我们枚举两个起点i,j ...
- UVA - 1314 Hidden Password(最小表示法)
题目链接:点击查看 题目大意:给出一个字符串,求其最小表示法所代表的下标 题目分析:最小表示法的模板题,因为N给到了1e5,如果是正常的求最小值的话,时间复杂度是n*lens级别的,但最小表示法可以利 ...
- HDU - 3374 String Problem(最小表示法+最大表示法+KMP的next数组)
题目链接:点击查看 题目大意:给出一个字符串,现在问字符串不断向左循环所能形成的n个字符串中,字典序最小和最大的字符串的编号为多少,分别有多少个 题目分析:字符串最小表示法的模板题,证明和模板都是看大 ...
- 几个冷门字符串算法的学习笔记(最小表示法,exKMP,Lyndon Word)
所有下标均从1开始 最小表示法 给定一个串,求字典序最小的循环同构. 我们把串复制一遍接在后面,然后求出[1,N][1,N][1,N]开始的长为NNN的子串中最小的 先设i=1,j=2i=1,j=2i ...
- bzoj 1398: 寻找主人 AC自动机+最小表示法
题目大意: 给定两个序列判断是否循环同构,若循环同构则输出最小表示 题解: 因为没有样例输入输出,一开始没看到要求输出最小表示 Wa一大页. 但不得不说bzoj还是挺高效的: 赞一个 XD.jpg 判 ...
- 字符串循环同构的最小表示法(转)
循环字符串的最小表示法的问题可以这样描述: 对于一个字符串S,求S的循环的同构字符串S'中字典序最小的一个. 由于语言能力有限,还是用实际例子来解释比较容易: 设S=bcad,且S'是S的循环同构的串 ...
最新文章
- hdu 1166 敌兵布阵(树状数组)
- vb.net机房收费系统重构——存储过程的使用
- Solr 查询时候关键期 编码问题
- python 列表比较不同物质的吸热能力_飘着雪花的冬天
- iOS-语法syntax
- java垃圾回收机制算法分析
- PTA-6-1 数组循环右移 (20分)(C语言)
- 网站前端开发基础知识学什么?必备技能
- kotlin运行_Kotlin允许,运行,也适用于
- 末日帝国——Agile公司的困境 (5)
- 软件开发工作过程中的一些总结
- 前端常用PS技巧总结之将图片上的LOGO(水印)去掉
- Pytorch中torch.nn.DataParallel负载均衡问题
- 文档多级列表_如何在Google文档中创建多级列表
- 爬取Google Play中app的用户评论(1)
- Unreal Engine 4 渲染目标(Render Target)教程 之 可交互的草地(上)
- 万物互联大时代,物联网的基础技术有哪些?
- 光环国际20周年庆六城联动峰会「北京场」圆满结束!
- html圣诞快乐英文,圣诞快乐英语,圣诞快乐英语简写?
- JsonFormat使用经历