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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

bzoj1355——2016——3——15

發(fā)布時(shí)間:2023/12/1 综合教程 23 生活家
生活随笔 收集整理的這篇文章主要介紹了 bzoj1355——2016——3——15 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

傳送門(mén):http://www.lydsy.com/JudgeOnline/problem.php?id=1355

題目大意:

1355: [Baltic2009]Radio Transmission

Time Limit:?10 Sec??Memory Limit:?64 MB
Submit:?591??Solved:?390
[Submit][Status][Discuss]

Description

給你一個(gè)字符串,它是由某個(gè)字符串不斷自我連接形成的。 但是這個(gè)字符串是不確定的,現(xiàn)在只想知道它的最短長(zhǎng)度是多少.

Input

第一行給出字符串的長(zhǎng)度,1 < L ≤ 1,000,000. 第二行給出一個(gè)字符串,全由小寫(xiě)字母組成.

Output

輸出最短的長(zhǎng)度

Sample Input

8
cabcabca

Sample Output

3

HINT

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

Source

題解:這題就是KMP next數(shù)組的應(yīng)用啦(水),最小值就是n-next[n](很容易想吧,因?yàn)榭尚薪饧癁閧n-next[n],n-next[next[n]]....)所以最小解顯然為n-next[n];

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #define inf 0x7fffffff
 5 int n,ans;
 6 int next[1000100];
 7 char s[1000100];
 8 using namespace std;
 9 int main()
10 {
11     scanf("%d",&n);
12     scanf("%s",s+1);
13     ans=0;
14     int fix=0;
15     for (int i=2; i<=n; i++)
16     {
17         while (fix && s[fix+1]!=s[i]) fix=next[fix];
18         if (s[fix+1]==s[i]) fix++;
19         next[i]=fix;
20     }
21     printf("%d\n",n-next[n]);
22 }

View Code

?

轉(zhuǎn)載于:https://www.cnblogs.com/HQHQ/p/5280425.html

總結(jié)

以上是生活随笔為你收集整理的bzoj1355——2016——3——15的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。