zoukankan      html  css  js  c++  java
  • POJ 2406 Power Strings

    F - Power Strings
    Time Limit:3000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

    Description

    Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc" and b = "def" then a*b = "abcdef". If we think of concatenation as multiplication, exponentiation by a non-negative integer is defined in the normal way: a^0 = "" (the empty string) and a^(n+1) = a*(a^n).

    Input

    Each test case is a line of input representing s, a string of printable characters. The length of s will be at least 1 and will not exceed 1 million characters. A line containing a period follows the last test case.

    Output

    For each s you should print the largest n such that s = a^n for some string a.

    Sample Input

    abcd
    aaaa
    ababab
    .
    

    Sample Output

    1
    4
    3
    

    Hint

    This problem has huge input, use scanf instead of cin to avoid time limit exceed.
     
     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<map>
     5 #define maxn 10010000
     6 using namespace std;
     7 char p[maxn];
     8 int next[maxn],len;
     9 int kmp(){
    10     int i=0,j=-1;
    11     next[0]=-1;
    12     while(i<len){
    13         if(j==-1||p[i]==p[j]) next[++i]=++j;
    14         else j=next[j];
    15     }
    16 }
    17 int main()
    18 {
    19     while(scanf("%s",p)!=EOF&&p[0]!='.'){
    20         len=strlen(p);
    21         kmp();
    22         if(len%(len-next[len]))printf("1
    ");
    23         else printf("%d
    ",len/(len-next[len]));
    24     }
    25     return 0;
    26 }
  • 相关阅读:
    Django url
    Django 命令
    MVC和MTV模式
    pymysql操作
    mysql 基本操作
    jquery基本操作
    外边距内边距
    css
    Html
    __name__ __main__ 作用
  • 原文地址:https://www.cnblogs.com/shenben/p/5459926.html
Copyright © 2011-2022 走看看