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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zcmu-1986

發布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zcmu-1986 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1986: 周期串plus

Time Limit:?1 Sec??Memory Limit:?128 MB
Submit:?10??Solved:?7
[Submit][Status][Web Board]

Description

如果一個字符串可以由某個長度為k的字符串重復多次得到,我們說該串以k為周期。例如abcabcabcabc以3為周期(當然他也以6,12為周期)。輸入一個長度不超過100000的串,輸出他的最小周期。

Input

多組測試數據,每組僅一行為一個僅有大寫字母組成的字符串。

Output

對于每組數據輸出該字符串的最小周期。

Sample Input

HOHO

Sample Output

2

分析:第一眼看到100000以為這題是在卡時間,然后后面一直在優化代碼,但是發現,其實在判斷周期的時候有時

是重復的,這樣可以節省了許多時間,但是這題100000主要只是嚇嚇你,做出來并沒有卡在時間上。

這題沒什么好講的,直接進行求解。

代碼

#include<iostream> #include<cstdio> #include<cstring> #define max 100000+10 using namespace std;int find(char a[]) {if(a==NULL)return -1;int size = strlen(a);int len = size / 2;bool flag = true;for(int i = 1;i <= len;++i){flag = true;for(int j = 0;j < i;++j){for(int k = i+j;k < size;k+=i){if(a[j] != a[k]){flag = false;break;}}if(flag == false){break;}}if(flag){return i;}}return size; }int main() {char s[max];while(cin>>s){cout<<find(s)<<endl;} }

總結

以上是生活随笔為你收集整理的zcmu-1986的全部內容,希望文章能夠幫你解決所遇到的問題。

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