Seek the Name, seek the Fame
Time Limit: 2000MS |
|
Memory Limit: 65536K |
Total Submissions: 14203 |
|
Accepted: 7077 |
Description
The little cat is so famous, which many couples tramp over Hill and Dale to Byteland, and asked the little cat to give name s to their newly-born babies. They seek the name, and at the same time seek the fame. In order-to-escape from such boring job, the innovative little cat works out a easy but fantastic algorithm:
Step1. Connect The father ' s name and the mother ' s name, to a new string s.
Step2. Find a proper Prefix-suffix string of s (which is isn't only the prefix, but also the suffix of s).
Example:father= ' ala ', mother= ' La ', we have S = ' ala ' + ' la ' = ' alala '. Potential prefix-suffix strings of S is {' A ', ' ala ', ' Alala '}. Given the string S, could the little cat to write a program to calculate the length of possible prefix-suffix str Ings of S? (He might thank you by giving your baby a name:)
Input
The input contains a number of test cases. Each test case occupies a, contains the string S described above.
Restrictions:only lowercase letters may appear in the input. 1 <= Length of S <= 400000.
Output
For each test case, output a single line with an integer numbers in increasing order, denoting the possible length of the new Baby ' s name.
Sample Input
Ababcababababcababaaaaa
Sample Output
2 4 9 181 2 3 4 5
Test instructions: Find all substrings with the same prefix and suffix in a string
#include <iostream> #include <stdio.h> #include <string> #include <cstring> #include <cmath >using namespace Std;char s[1000009];int nt[1000009];int len;void getnext () { int k=-1,j=0; Nt[0]=-1; while (J<len) { if (k<0 | | s[j]==s[k]) { j + +; k++; nt[j]=k; } else k=nt[k];} } int Ans[400009];int Main () {while (~scanf ("%s", s)) { Len=strlen (s); GetNext (); for (int i=0;i<=len;i++) cout<<nt[i]<< ""; cout<<endl; int cnt=0; Ans[0]=len; for (int i=nt[len];i>0;i=nt[i])//next The nature of the array. ans[++cnt]=i; for (int i=cnt;i>0;i--) cout<<ans[i]<< ""; cout<<ans[0]<<endl; } return 0;}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
POJ2752 seek the Name, seek the Fame