POJ—1961 Period
#include<cstdio> #include<cstring> #include<iostream> using namespace std; int next[1000005]; int n; void Next(char T[]) { int i=0,j=-1; next[0]=-1; while(i<n) { if(j==-1||T[j]==T[i])next[++i]=++j; else j=next[j]; } } int main() { char T[1000005]; int kase=0; while(~scanf("%d",&n)&&n!=0) { scanf("%s",&T); Next(T); printf("Test case #%d\n",++kase); for(int i=2;i<=n;i++) { if(next[i]>0&&i%(i-next[i])==0)printf("%d %d\n",i,i/(i-next[i])); } printf("\n"); } return 0; }
相關推薦
poj 1961 Period 把主串的每一種前綴當作小主串,如果小主串的子串在小主串中疊加次數大於1,輸出小主串長度及疊加次數。
include fin nbsp ase per ces proc 大於 ++ #include<stdio.h> #define M 1000010 int i,n,next[M]; char s[M]; void getNext() {
poj 1961 Period
ins size col class queue bsp pst tdi written Description For each prefix of a given string S with N characters (each character has an ASC
POJ—1961 Period
POJ—1961 Period #include<cstdio> #include<cstring> #include<iostream> using namespace std; int next[1000005]; int n; void Ne
poj 1961 Period (KMP+最小迴圈節)
Period Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 20563
POJ 1961 Period (KMP)
利用next陣列求解 #include <cstdio> #include <cstring> using namespace std; const int maxn = 1000000 + 10; char str[maxn]; int next[maxn]; int
POJ——T 1961 Period
lar height cond period ber space namespace ace script http://poj.org/problem?id=1961 Time Limit: 3000MS Memory Limit: 30000K
Period(POJ 1961)
ring -s 通過 循環 col 字符串 space poj 輸出 測評傳送門 題意: 一個字符串,求所有循環節長度及位置 Sample Input 3 aaa 12 aabaabaabaab 0 Sample Output Test case #1 2 2 3 3 T
【POJ】1961 Period-KMP
傳送門:poj 題意 給定一個長度為n的字串S,求它每個字首的最短迴圈節。 題解 運用kmp判迴圈串: 對於位置iii,若i%(i−nxti)=0i\%(i-nxt_i)=0i%(i−nxti)=
POJ 1961
.。。雖然 POJ 還沒好。。但是我感覺這個程式碼能A。。。如果有錯誤。。我再改 題目大概: 給一個長度為 n 的字串, 問題是輸出 第 i 個字母字首。。重複出現了幾次(一言難盡。
poj 2406 poj 1961 個人對吉大KMP模板的理解 KMP 基礎題--找週期串
好佩服寫kmp程式碼的人... 看死了終於看得有點明白了...... 學kmp先看兩個比較好的總結 這兩個講解非常好 摘一句我認為最重要的話 預處理出這樣一個數組P[j],表示當匹配到B陣列的第j個字母而第j+1個字母不能匹配了時,新的j最大是多少。P[j]應該是
POJ 1961 KMP_next陣列
題意:給你一個串,然後叫你輸出,該串從1 -> i (i = 2 , 3 , 4 ……, l)這個字首串,可以由一個字串迴圈多少次產生,即是一個週期串,無法形成則不輸出。具體可以看樣例,很好理解。 思路:這道題考察的是KMP,next陣列的應用,我們知道如果next[
POJ 3518 Prime Gap(素數)
for org 篩選法求素數 lan article sizeof tar eof rim POJ 3518 Prime Gap(素數) http://poj.org/problem?id=3518 題意: 給你一個數。假設該數是素數就輸出0. 否則輸出比
POJ 2586 Y2K Accounting Bug(枚舉大水題)
lin uri ssd 數據丟失 span com reported cpp rem Y2K Accounting Bug Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1067
poj 1182 (帶權並查集)
ios int 查找 食物 spa script ble 距離 輸出 食物鏈 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 71361 Accepted: 21131 Des
poj 2559 Largest Rectangle in a Histogram 棧
hist func opc txt class sse typedef ++ limit // poj 2559 Largest Rectangle in a Histogram 棧 // // n個矩形排在一塊,不同的高度,讓你求最大的矩形的面積(矩形緊挨在一起)
POJ 3461 kmp
desc href i++ -a spl ffi mem table art Oulipo Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 40168 Acce
POJ Knight Moves 2243 x
rate tput ble esc 當前 malle center namespace string Knight Moves Time Limit: 1000MS Memory Limit: 65536K
poj:1850 Code(組合數學?數位dp!)
urn font log strlen adc i++ 分享 依次 one 題目大意:字符的字典序依次遞增才是合法的字符串,將字符串依次標號如:a-1 b-2 ... z-26 ab-27 bc-52。 為什麽題解都是組合數學的...我覺得數位dp很好寫啊(逃
POJ 2533 Longest Ordered Subsequence DP
tro wid element ogr cst ++ max integer article Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submi
POJ 2488:A Knight's Journey
graph for erp 技術分享 rpe one star void get A Knight‘s Journey Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 29241