擴充套件KMP KMP hdu4333

2021-06-22 17:07:39 字數 756 閱讀 2171

自己就是想不到,智商是硬傷啊

思路:擴充套件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 ...