計蒜客習題 重複的密文

2021-08-20 22:19:06 字數 677 閱讀 2208

蒜頭君收到了一串密文,但是由於接收器壞了,他不停的重複接收,終於,蒜頭君把插頭拔了,機器停止了,但是蒜頭君已經收到了乙個很長字串,它是由某個原始串不停的重複形成了,因為斷電,最後一遍也不一定是完整的。蒜頭君現在想知道這個原始串的最短可能長度是多少。 

輸入格式

第一行輸入乙個正整數 l(1< l≤1e6),表示這個字串的長度。 

第二行輸入乙個字串,全部由小寫字母組成。 

輸出格式

答案輸出,輸出最短的可能長度。 

樣例輸入

8 cabcabca 

樣例輸出

3這題我們怎麼分析呢? 

首先除了第乙個週期的字元外 另外字元的next陣列一定是遞增的 那麼我們就可以通過最後乙個長度n2-next[n2]也就是重複的多少個,實際上就是隔了第乙個週期

#include #include #include #include #include using namespace std;

const int max_n = 1e6+5;

int next[max_n];

char mo[max_n];

int n2;

void getnext()

else j=next[j];

}return ;

}int main()

計蒜客習題 重複的密文

蒜頭君收到了一串密文,但是由於接收器壞了,他不停的重複接收,終於,蒜頭君把插頭拔了,機器停止了,但是蒜頭君已經收到了乙個很長字串,它是由某個原始串不停的重複形成了,因為斷電,最後一遍也不一定是完整的。蒜頭君現在想知道這個原始串的最短可能長度是多少。輸入格式 第一行輸入乙個正整數 l 1 l 1e6 ...

計蒜客習題 朋友

在社交的過程中,通過朋友,也能認識新的朋友。在某個朋友關係圖中,假定 a 和 b 是朋友,b 和 c 是朋友,那麼 a 和 c 也會成為朋友。即,我們規定朋友的朋友也是朋友。現在,已知若干對朋友關係,詢問某兩個人是不是朋友。請編寫乙個程式來解決這個問題吧。輸入格式 第一行 三個整數 n,m,p n ...

計蒜客習題 逃跑

一位博主寫了ac 但是無論是廣度bfs還是深度dfs,都會報錯,dfs是執行超時,bfs是答案錯誤。傳送門 另一位博主使用了dfs 有興趣可以看下,沒有檢驗是否正確,傳送門 根據前位博主的bfs 做了幾項修改,然後用自己的 找錯前位博主,發現找不出來,有興趣的小夥伴可以試下,找一下前位博主的錯誤。當...