#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int nxt[1000005], len;
char a[1000005];
void mknxt(){
int i=0, j;
nxt[0] = j = -1;
while(i<len){
if(j==-1 || a[i]==a[j]) nxt[++i] = ++j;
else j = nxt[j];
}
}
int getMin(){
int i=0, j=1, k=0;
while(i<len && j<len && k<len){
int t=a[(i+k)%len]-a[(j+k)%len];
if(!t) k++;
else{
if(t>0) i += k + 1;
else j += k + 1;
if(i==j) j++;
k = 0;
}
}
return min(i, j);
}
int getMax(){
int i=0, j=1, k=0;
while(i<len && j<len && k<len){
int t=a[(i+k)%len]-a[(j+k)%len];
if(!t) k++;
else{
if(t>0) j += k + 1;
else i += k + 1;
if(i==j) j++;
k = 0;
}
}
return min(i, j);
}
int main(){
while(scanf("%s", a)!=EOF){
memset(nxt, 0, sizeof(nxt));
len = strlen(a);
mknxt();
int cnt=len-nxt[len];
if(len%cnt) cnt = 1;
else cnt = len / cnt;
printf("%d %d %d %d\n", getMin()+1, cnt, getMax()+1, cnt);
}
}

hdu3374 String Problem 最小最大表示法 最小循环节出现次数的更多相关文章

  1. HDU3374 String Problem —— 最小最大表示法 + 循环节

    题目链接:https://vjudge.net/problem/HDU-3374 String Problem Time Limit: 2000/1000 MS (Java/Others)    Me ...

  2. hdu3374 String Problem【最小表示法】【exKMP】

    String Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. HDOJ3374 String Problem 【KMP】+【最小表示法】

    String Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  4. hdu3374 String Problem

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=3374 题目: String Problem Time Limit: 2000/1000 MS (Java/ ...

  5. hdu3667 Transportation 费用与流量平方成正比的最小流 拆边法+最小费用最大流

    /** 题目:hdu3667 Transportation 拆边法+最小费用最大流 链接:http://acm.hdu.edu.cn/showproblem.php?pid=3667 题意:n个城市由 ...

  6. hdu3374 String Problem KMP+最大最小表示法

    Give you a string with length N, you can generate N strings by left shifts. For example let consider ...

  7. String Problem HDU - 3374(最大最小表示法+循环节)

    题意: 给出一个字符串,问这个字符串经过移动后的字典序最小的字符串的首字符位置和字典序最大的字符串的首字符的位置,和能出现多少次最小字典序的字符串和最大字典序的字符串 解析: 能出现多少次就是求整个字 ...

  8. A-06 最小角回归法

    目录 最小角回归法 一.举例 二.最小角回归法优缺点 2.1 优点 2.2 缺点 三.小结 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等 ...

  9. 【HDU3374】 String Problem (最小最大表示法+KMP)

    String Problem Description Give you a string with length N, you can generate N strings by left shift ...

随机推荐

  1. Flask蓝图的增删改查

    怎样用flask蓝图来实现增删改查呢?请看下面的内容 这是我们的目录结构 从图中可以看出每一个功能都有一个各自的文件夹 首先我们要自己先来创建一个数据,在Flask_data.py中写入如下内容: S ...

  2. $.ajax防止多次点击重复提交的方法

    第一种:使用$.ajaxPrefilter( [dataTypes], handler(options, originalOptions, jqXHR) ) 方法:$.ajaxPrefilter()方 ...

  3. 使用css写三角箭头

    .right-arrow{ width:6px; height:6px; align-self: center; border-right:1px solid #2ac795; border-left ...

  4. 【c++】用c++编写的求任意区间的素数的小程序

    #include using namespace std; int main() { cout<<"*************************************** ...

  5. font:inherit

    font:inherit 字体的设置 设置所有元素的字体保持一致: 所有元素:*{font:inherit;} /* IE8+ */ body体用percent:body{font:100%/1 sa ...

  6. 大数四则运算java(转)

    // 大数的四则运算 #include <iostream> #include <string> #include <algorithm> using namesp ...

  7. System Center Configuration Manager 2016 域准备篇(Part1)

    本系列指南如何从Microsoft安装最新的Configuration Manager基准版本.较新的可用基准版本System Center Configuration Manager(当前分支)版本 ...

  8. php:生成的时间与本地电脑的时间不匹配

    如题,在php中我发现在数据库中的时间跟电脑上的时间没有同步 本地时间: 数据库中,生成的时间: 很明显,时分秒是对应不上去的,那么我们只要在php.ini中找到 这里被注释掉了,那我们就改成这样: ...

  9. warning: remote HEAD refers to nonexistent ref, unable to checkout.解决

    git branch -r origin/branch origin/hexo git checkout -b hexo origin/hexo

  10. Codeforces Round #323 (Div. 2) C GCD Table 582A (贪心)

    对角线上的元素就是a[i],而且在所在行和列中最大, 首先可以确定的是最大的元素一定是a[i]之一,这让人想到到了排序. 经过排序后,每次选最大的数字,如果不是之前更大数字的gcd,那么只能是a[i] ...