2406:字串乘方
總時間限制:
3000ms
記憶體限制:
65536kb
描述給定兩個字串a和b,我們定義a*b為他們的連線。例如,如果a=」abc」 而b=」def」, 則a*b=」abcdef」。 如果我們將連線考慮成乘法,乙個非負整數的乘方將用一種通常的方式定義:a^0=」」(空字串),a^(n+1)=a*(a^n)。
輸入每乙個測試樣例是一行可列印的字元作為輸入,用s表示。s的長度至少為1,且不會超過一百萬。最後的測試樣例後面將是乙個點號作為一行。
輸出對於每乙個s,你應該列印最大的n,使得存在乙個a,讓s=a^n
樣例輸入
樣例輸出abcd
aaaa
ababab
.
提示1
43
本問題輸入量很大,請用scanf代替cin,從而避免超時。
#include#include#define n 1000000
char c[n];
int next[n];
int len;
void getnext()
else
j=next[j]; }}
int main()
return 0;
}
poj 字串乘方
kmp演算法的解釋 字串匹配的kmp演算法 簡單易懂 點選開啟鏈結 總時間限制 3000ms 記憶體限制 65536kb 描述給定兩個字串a和b,我們定義a b為他們的連線。例如,如果a abc 而b def 則a b abcdef 如果我們將連線考慮成乘法,乙個非負整數的乘方將用一種通常的方式定義...
poj2406 求主串的週期子串
題目大意 給出乙個字串,將其分解為若干子串的和,求可分解的最多子串的個數。做題之前就知道這是一道kmp的題目,但一直沒想到怎麼寫 後面看了下別人的思路 最近寫題總是會忍不住看別人的思路 慚愧。得出結論 乙個串的週期子串長度 主串長 next 主串長度 然後再用主串長除以週期子串長度就得到了子串週期長...
POJ 2406 字尾陣列 求連續重複子串
解法一 dc3求字尾 因為我用的是紅書的字尾模板,所以是倍增求的,所以這個dc3是用這個部落格的模板 這個也是勉強過的,時間為 2829ms了,寫得不機智就會超了。include include define n 2000005 define f x x 3 x 3 1?0 tb define g ...