zoukankan      html  css  js  c++  java
  • (KMP 求循环节)The Minimum Length

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70325#problem/F

    The Minimum Length
    Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu

    Description

    There is a string A. The length of A is less than 1,000,000. I rewrite it again and again. Then I got a new string: AAAAAA...... Now I cut it from two different position and get a new string B. Then, give you the string B, can you tell me the length of the shortest possible string A. For example, A="abcdefg". I got abcd efgabcdefgabcdefgabcdefg.... Then I cut the red part: efgabcdefgabcde as string B. From B, you should find out the shortest A.

    Input

    Multiply Test Cases. For each line there is a string B which contains only lowercase and uppercase charactors. The length of B is no more than 1,000,000.

    Output

    For each line, output an integer, as described above.

    Sample Input

    bcabcab
    efgabcdefgabcde
    

    Sample Output

    3
    7
    #include<stdio.h>
    #include<string.h>
    
    #define N 1000007
    #define max(a,b) (a>b?a:b)
    
    int Next[N];
    char S[N];
    
    void FindNext(int Slen)
    {
        int i=0, j=-1;
        Next[0] = -1;
    
        while(i<Slen)
        {
            if(j==-1 || S[i]==S[j])
                Next[++i] = ++j;
            else
                j = Next[j];
        }
    }
    
    int main()
    {
        while(scanf("%s", S)!=EOF)
        {
            int Slen=strlen(S), i;
    
            FindNext(Slen);
    
            for(i=Slen; i>0; i--)
            {
                if(i%(i-Next[i])==0)
                {
                    printf("%d
    ", i-Next[i]);
                    break;
                }
            }
        }
        return 0;
    }
    View Code
    勿忘初心
  • 相关阅读:
    软件工程作业03
    PSP0级要求02
    PSP0级要求日志
    软件工程个人作业02
    第三周学习进度
    第二周学习进度
    软件工程个人作业01
    Web网页登录设计
    第一周学习进度
    第三周学习进度条+PSP0过程文档
  • 原文地址:https://www.cnblogs.com/YY56/p/4835219.html
Copyright © 2011-2022 走看看