传送门

最小表示法模板

//Achen
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<vector>
#include<queue>
#include<cmath>
#include<ctime>
const int N=100007;
typedef long long LL;
using namespace std;
int T,n;
char s[N]; template<typename T> void read(T &x) {T f=1; x=0; char ch=getchar();while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();if(ch=='-') f=-1,ch=getchar();for(;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-'0'; x*=f;
}int solve() {int i=0,j=1,k=0;for(;i<n&&j<n&&k<n;) {int t=s[(i+k)%n]-s[(j+k)%n];if(!t) k++;else {if(t>0) i=i+k+1; else j=j+k+1;if(i==j) j++;k=0;}} return min(i,j);
}int main() {read(T);while(T--) {scanf("%s",s);n=strlen(s);printf("%d\n",solve()+1);}return 0;
}

View Code

转载于:https://www.cnblogs.com/Achenchen/p/8270413.html

POJ - 1509 Glass Beads相关推荐

  1. POJ 1509 Glass Beads 后缀自动机

    求给定字符串s从哪个位置开始的循环同构串字典序最小. 如果复制一遍s,发现其所有循环同构都是新字符串ss的长度为|s|的子串. 于是后缀自动机..dfs,不断地走字典序最小的边,直到走了|s|次即可. ...

  2. @poj - 1509@ Glass Beads

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个由小写字母构成的圆环形的字符串(即首字母和末字母是相连的 ...

  3. POJ 1509 Glass Beads

    Description 求字符串的最小循环表示. Sol SAM. 把原串复制一遍,建出SAM,然后每次选最小的一个跑 \(len\) 次,这就是最小循环表示的最后一个节点,然后 \(x-len+1\ ...

  4. UVA719 Glass Beads 最小表示 / 后缀自动机

    传送门 题意: 求sss的最小表示. ∣s∣≤1e4|s|\le 1e4∣s∣≤1e4 思路: 可以选择直接套最小表示法的板子,但也可以将sss复制,即ss=s+sss=s+sss=s+s,对ssss ...

  5. 【POJ1509】Glass Beads 【后缀自动机】

    题意 给出一个字符串,求它的最小表示法. 分析 这个题当然可以用最小表示法做啦!但是我是为了学后缀自动机鸭! 我们把这个字符串长度乘二,然后建SAM,然后在SAM上每次跑最小的那个字母,找出长度为n的 ...

  6. (Incomplete) UVa 719 Glass Beads

    方法:最小表示法 题意及求一个string最小表示法的启示index.套用模版即可. code: 1 #include <cstdio> 2 #include <cstring> ...

  7. POJ1509 Glass Beads [后缀自动机]

    题意: 给一个字符串S,每次可以将它的第一个字符移到最后面,求这样能得到的字典序最小的字符串.输出开始下标 练习SAM第一题! SS构造SAM,然后从开始尽量走最小走n步就可以啦 什么?开始位置?!R ...

  8. Glass Beads

    是一个裸的最小表示法问题 #include<iostream> using namespace std; int t,n; string str; int getmin() {int i= ...

  9. 《挑战程序设计竞赛(第2版)》习题册攻略

    本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...

最新文章

  1. javascript运动系列第九篇——碰撞运动
  2. 实战:一键生成前后端代码,Mybatis-Plus代码生成器让我舒服了
  3. nginx 学习笔记(4) Connection处理方法
  4. 阿里云将增设马来西亚数据中心 中国技术获赞
  5. Linux uptime 命令详解
  6. P2495-[SDOI2011]消耗战【虚树,dp】
  7. Nginx----进阶
  8. 机器学习实战 | 数据探索
  9. 11静态static
  10. 《Java程序员面试秘笈》—— 面试题10 类继承的建模表示方法
  11. sql azure 语法_使用Azure门户监视安装了SQL Server的Azure计算机
  12. as3通用三方库大全
  13. 在计算机系统软件中核心软件,在计算机系统软件中的核心软件是()
  14. android控件缩放后居中,三大布局的基本摆放属性总结,以及imageVIew图片摆放的缩放问题...
  15. 金额中文大写c语言,C语言编程:数字金额转换为中文大写金额?
  16. python场景文字识别_场景文字识别Attention_飞桨-源于产业实践的开源深度学习平台...
  17. Vulnhub_Noob
  18. 怎样设置计算机u盘启动程序,BIOS如何设置U盘为第一启动项
  19. RabbitMQ精讲7:与SpringBoot、Spring Cloud Stream整合实战
  20. Python面向对象06/反射/双下方法

热门文章

  1. C++ BYTE数组转字符串
  2. 绑定Service的三种实现方式之使用Messenger
  3. 【Win 10 应用开发】UI Composition 札记(二):基本构件
  4. 高放的python学习笔记之基本语法
  5. A+B/A*B求A和B
  6. 3.Struts2的输入验证
  7. 云计算五种定义辨析[摘]
  8. flutter 局部状态和全局状态区别_给 Android 开发者的 Flutter 指南
  9. UVA11722(见面概率)
  10. UVA10340子序列