日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

1355: [Baltic2009]Radio Transmission

發布時間:2025/3/18 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1355: [Baltic2009]Radio Transmission 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Time Limit:?10 Sec??Memory Limit:?64 MB
Submit:?958??Solved:?659
[Submit][Status][Discuss]

Description

給你一個字符串,它是由某個字符串不斷自我連接形成的。 但是這個字符串是不確定的,現在只想知道它的最短長度是多少.

Input

第一行給出字符串的長度,1 < L ≤ 1,000,000. 第二行給出一個字符串,全由小寫字母組成.

Output

輸出最短的長度

Sample Input

8
cabcabca

Sample Output

3

HINT

對于樣例,我們可以利用"abc"不斷自我連接得到"abcabcabc",讀入的cabcabca,是它的子串

Source

?

KMP算法的裸題

答案=L-P[L];

?

1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<cstring> 6 #include<algorithm> 7 using namespace std; 8 const int MAXN=1000010; 9 void read(int &n) 10 { 11 char c='+';int x=0;bool flag=0; 12 while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;} 13 while(c>='0'&&c<='9')x=x*10+c-48,c=getchar(); 14 n=flag==1?-x:x; 15 } 16 char a[MAXN]; 17 int p[MAXN]; 18 int l=0; 19 void getp() 20 { 21 int j=0; 22 for(int i=1;i<l;i++) 23 { 24 while(a[i]!=a[j]&&j>0) j=p[j-1]; 25 if(a[i]==a[j])j++; 26 p[i]=j; 27 } 28 printf("%d",l-p[l-1]); 29 } 30 int main() 31 { 32 int meiyong;read(meiyong); 33 scanf("%s",a); 34 l=strlen(a); 35 getp(); 36 return 0; 37 }

?

總結

以上是生活随笔為你收集整理的1355: [Baltic2009]Radio Transmission的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。