KMP做題記錄

2021-08-11 03:43:25 字數 880 閱讀 3770

題目太長不貼了

這道題很巧妙,給定乙個字串s,求最少在首尾新增幾個字元後,s變為乙個迴圈了n次的字串(n>1)。

假設我們有乙個迴圈串s=」abcabcabc」,我們根據kmp求一次next陣列,就可以通過next[strlen[s]]得到乙個迴圈節的位置從而求出迴圈節的長度,顯然,迴圈節能被s整除。如果s=」abcdeabab」,我們按上面方法得到的迴圈節並不能被s整除,差了多少呢,就是差了」cde」的長度,具體怎麼算」cde」長度見**。

/**

* hdu3946

* kmp

* 按書上的寫了一遍

*/#include

#include

#include

#include

using

namespace

std;

const

int mmax = 100005;

int lena;

int lens;

void get_next(char * s, int * next1)

else

j=next1[j];

}}//void get_next(char * s, int * next1)

//// next1[++i] = ++j;

// }

//}int main()

// printf("\n");

int ans = lens;

int i = next1[lens];

int k,q,p;

while(i!=-1)

printf("%d\n", ans);

}return

0;}

8 25 9 25 做題記錄

2018.8.25 上午 1.ac 洛谷p1514引水入城 搜尋 貪心 2.ac 洛谷p3918 國家集訓隊 特技飛行 貪心 下午 3.ac 洛谷p1120 小木棍 資料加強版 搜尋 剪枝 4.ac 洛谷p1441 砝碼稱重 dfs列舉 01揹包 2018.8.26 上午 參加模擬賽 下午 1.ac...

8 25 9 25 做題記錄

2018.8.25 上午 1.ac 洛谷p1514引水入城 搜尋 貪心 2.ac 洛谷p3918 國家集訓隊 特技飛行 貪心 下午 3.ac 洛谷p1120 小木棍 資料加強版 搜尋 剪枝 4.ac 洛谷p1441 砝碼稱重 dfs列舉 01揹包 2018.8.26 上午 參加模擬賽 下午 1.ac...

2018 12 17 2018 12 23做題記錄

周一 周二 學習了在樹上查距離乙個點距離為k的聯通塊的技巧 動態點分治,注意往上查的時候要去重 例題 bzoj 做了一些月賽題 bzoj 5075 很巧妙的題。m 1時,分類討論n 3 1,2,0,發現中間的數都是可以確定的。m 1時可以對每行求和,壓縮成只有一列的情況,所以中間的地雷數是確定的。寫...