KMP 小學期考核

2021-07-22 15:51:55 字數 711 閱讀 5565

題目大意:給你乙個數字串a,找出數字串的所以字首b(不包括本身),求b的字首和字尾完全匹配的最大個數所形成的數字串c,特別的因為前字尾也不包括本身,所以當只有乙個數字時最大匹配為 -1 !

題目例子: eg: a :1 2 3 4 5   所以  b: 1     1 2    1 2 3    1 2 3 4   所以四個b的前字尾的最大匹配為 -1 0 0 0   即最後的答案為  -1 0 0 0  (題目描述還有個最小字典序,因為第乙個必須為-1  後面的最下也為0  所以求出來的就是最小字典序,這是題目設的坑!) 

題目思路:題目描述還是有點繞口,其實就是求a的所有字首的字首和字尾的最大匹配,不難發現這就是kmp的next陣列,所以本題就是求數字串a的next陣列,當然要去掉next陣列的最後乙個和第二個,當然還要特判只有乙個數字的情況!

**:#include#include#includeusing namespace std;

const int maxn=200;

int str[maxn];

int ans[maxn];

int next[maxn];

void getnext(int len)

ans[j-1]=next[j-1];

return ;

}int main()

{ int n;

while(~scanf("%d",&n))

{for(int i=0;i

小學期 掃雷

你玩兒過掃雷遊戲吧?有個作業系統中帶了這個小遊戲,那個系統叫什麼來著?在遊戲中要想過關,就必須要在乙個 nxm 的區域上找出所有的地雷。遊戲過程中,計算機會在地圖上顯示一些數字從而幫助你確定 有地雷。例如,在下面這個有兩顆地雷的 4x4 的地圖 表示地雷 根據上面的地圖,可以計算出應該提供給遊戲者的...

小學期活動

現在我是大二,這學期的小學期是進行軟體實習。想想去年這個時候是在學校的烈日下參加軍訓。不過這學期小學期的任務還是很重的,不是一般的重。感覺比平時上課時候要緊張多了。說說現在完成的進度。小學期的前半部分的上課階段已經在今天結束了。職業溝通課程已經結束了,其間完成一系列活動,主要有模擬公司的招聘的活動,...

夏季小學期

夏季小學期 825172?fr aladdin 夏季小學期一般指在春季學期結束後,額外增加的若干周較短的上課時間,與春 秋季學期組成 兩長加一短 的形式,並以此為週期安排全學年教學任務。這也是諸多世界名校普遍採用的學期制度。目前國內開設夏季小學期的主要有北京大學 清華大學 華東師範大學 中國政法大學...