洛谷P3805 模板 manacher演算法

2022-06-13 15:54:11 字數 461 閱讀 2151

給出乙個只由小寫英文本元 \(\texttt a,\texttt b,\texttt c,\ldots\texttt y,\texttt z\) 組成的字串 \(s\) ,求 \(s\) 中最長回文串的長度 。

字串長度為 \(n\)。

先將每兩個字母之間插入乙個奇怪的符號。

記 \(p[x]\) 表示第 \(x\) 個字元為對稱中心,能擴充套件的最遠距離是多少。記 \(mid,mr\) 分別為所有便利過的區間中右端點最遠時的對稱中心和右端點最大值。

#include using namespace std;

const int n=11000010;

int n,p[n*2];

char s[n*2];

int manacher(char *s)

return ans;

}int main()

題解 P3805 模板 manacher演算法

我們先看兩個字串 abccba abcdcba 顯然這兩字串是回文的 然而兩個串的對稱中心的特性不同,第乙個串,它的對稱中心在兩個c中間,然而第二個串,它的對稱中心就是d。這樣我們如果要記錄回文串的對稱中心,就顯得複雜了。為了解決這個問題,把兩種情況統一起來,我們就在字母之間插入隔板,這樣兩個問題就...

洛谷 P3805 manacher演算法

思路 模板,直接上馬拉車 1 include 2 include3 include4 include5 include 6 include7 include8 include9 include10 include 11 include12 define inf 0x3f3f3f3f 13using ...

Dinic模板 洛谷P3376

dinic演算法是網路流最大流的優化演算法之一,每一步對原圖進行分層,然後用dfs求增廣路。時間複雜度是o n 2 m dinic演算法最多被分為n個階段,每個階段包括建層次網路和尋找增廣路兩部分。dinic演算法的思想是分階段地在層次網路中增廣。它與最短增廣路演算法不同之處是 最短增廣路每個階段執...