题目描写叙述:
推断能否将字符串S分成三段非空回文串。
解题思路:
源码:
#include <cstdio>
#include <algorithm>
#define MAXN 20010
using namespace std;
int n;
char d[MAXN];///原始字符串
char st[MAXN*2];///经过manacher处理之后的字符串
int p[MAXN*2];///保存回文串半径,ps每一个回文串长度一定为奇数
int ll[MAXN*2];///第一个回文串可能的全部半径
int rr[MAXN*2];///第三个回文串可能的全部半径
void manacher(){///manacher算法,能够去查询了解一下
int i;
st[0]='$';
st[1]='#';
for(i=1;d[i]!='