自己就是想不到,智商是硬傷啊
思路:擴充套件kmp能求出乙個串所有字尾串(即s[i...len])和模式串的最長公共字首。於是只要將這個串複製一遍,拼接到後面,求出拼接後的串每個字尾與原來串的最長公共字首即可,當公共字首》=len時,顯然相等,否則只要比較下一位就能確定這個串與原串的大小關係。至於重複串的問題,只有當這個串有迴圈節的時候才會產生重複串,用kmp的next陣列求出最小迴圈節,用長度除以最小迴圈節得到迴圈節個數,在將3個答案都除以迴圈節個數即可。
#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
const int maxn=200010;
int next[maxn/2],extend[maxn];
char s[maxn],s1[maxn/2];
int n;
void getnext(char *ss)
int cir=1;
int len=strlen(s1);
if(len%(len-next[len])==0)cir=len/(len-next[len]);
printf("%d %d %d\n",l/cir,e/cir,g/cir);
}int main()
return 0;
}
Nacos擴充套件配置 4
通過之前的學習,我們知道應用引入nacos配置中心之後預設將會載入data id 預設group為public的配置檔案,並且可以通過下面三個引數指定修改預設的配置檔案 有時候乙個模組專案需要多個配置檔案,這時候我們就可以使用nacos的擴充套件配置引數 extended configuration...
Linux命令及擴充套件4
gzip gz bz2 bz2 zip zip c 生成檔案檔案,建立打包檔案 v 列出歸檔解檔的詳細過程,顯示進度 f 指定檔案檔名稱,f後面一定是.tar檔案,所以必須放選項最後 x 解開檔案檔案 z 壓縮 tar cvf a.tar agzip a.tartar zcvf a.tar.gz a...
ext4 VTypes擴充套件
新建乙個檔案,在檔案內插入如下內容 return true passwdtext 兩次輸入的密碼不一致!chinese function val,field return true chinesetext 請輸入中文 age function val,field catch err agetext ...