zoukankan      html  css  js  c++  java
  • HDU 3374

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <iostream>
    using namespace std;
    #define MAXN 1000017
    int Next[MAXN];
    char str[MAXN];
    int k;
    void getNext( char T[],int len)
    {
        int i = 0, j = -1;
        Next[0] = -1;
        while(i < len)
        {
            if(j == -1 || T[i] == T[j])
            {
                i++,j++;
                Next[i] = j;
            }
            else
                j = Next[j];
        }
    }
    //最小表示法
    int get_minstring(char *s)
    {
        int len = strlen(s);
        int i = 0, j = 1, k = 0;
        while(i<len && j<len && k<len)
        {
            int t=s[(i+k)%len]-s[(j+k)%len];
            if(t==0)
                k++;
            else
            {
                if(t > 0)
                    i+=k+1;
                else
                    j+=k+1;
                if(i==j) j++;
                k=0;
            }
        }
        return min(i,j);
    }
     
    //最大表示法
    int get_maxstring(char *s)
    {
        int len = strlen(s);
        int i = 0, j = 1, k = 0;
        while(i<len && j<len && k<len)
        {
            int t=s[(i+k)%len]-s[(j+k)%len];
            if(t==0)
                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",str)!=EOF)
        {
            int len = strlen(str);
            getNext(str,len);
            int tt = len - Next[len];
            int num = 1;
            if(len%tt == 0)
            {
                num = len/tt;
            }
            int posmin = get_minstring(str);
            int posmax = get_maxstring(str); 
            printf("%d %d %d %d
    ",posmin+1,num,posmax+1,num);
        }
        return 0;
    }
    
  • 相关阅读:
    J2ME开发及JBuilder工具的应用
    Oracle 的入门心得
    Java多线程程序设计初步
    网线制作
    手机死机的原因简析
    SIM简介
    谈谈J2ME的几个重要的功能
    手机应该放哪里 如何把危害的程度降到最低
    彩信的基本原理
    oracle学习笔记
  • 原文地址:https://www.cnblogs.com/tianming1/p/11514696.html
Copyright © 2011-2022 走看看