bzoj2565 最長雙回文串

2021-08-08 09:10:45 字數 537 閱讀 1362

傳送門

manacher+奇怪的遞推(我也不清楚這算不算遞推)0.0

大體思路是記錄能到達每個字元的最早的對稱中心,然後根據在manacher的時候用當前回文串和前面相鄰的回文串來更新答案就好了(我邊界問題處理了好久,然而1a開森)

code:

#include

#define n 100005

char s[n<<1];

int p[n<<1],a[n<<1];

int len,mx,pos,ans;

inline

int max(const

int &a,const

int &b)

inline

int min(const

int &a,const

int &b)

int main()

if(i+p[i]>mx) mx=i+p[i],pos=i;

}printf("%d",ans);

return

0;}

BZOJ 2565 最長雙回文串

description 順序和逆序讀起來完全一樣的串叫做回文串。比如acbca是回文串,而abc不是 abc的順序為 abc 逆序為 cba 不相同 輸入長度為 n 的串s,求 s 的最長雙回文子串 t,即可將 t 分為兩部分x,y x y 1 且 x 和 y都是回文串。input 一行由小寫英文本...

BZOJ 2565 最長雙回文串

順序和逆序讀起來完全一樣的串叫做回文串。比如acbca是回文串,而abc不是 abc的順序為 abc 逆序為 cba 不相同 輸入長度為n的串s,求s的最長雙回文子串t,即可將t分為兩部分x,y,x y 1 且x和y都是回文串。一行由小寫英文本母組成的字串s。一行乙個整數,表示最長雙回文子串的長度。...

BZOJ 2565 最長雙回文串

題意 給出乙個字串s ss,求s ss的最長雙回文子串t tt,即可將t tt分為兩部分x xx,y yy,x y 1 x y 1 x y 1 且x xx和y yy都是回文串。題解 我們知道len i len i len i 表示以i ii這個字元結束的最長回文串的長度,然後我們只需要建立兩個回文自...