题目链接
https://hihocoder.com/contest/hiho1/problem/1
做法 Manacher
#include <bits/stdc++.h> using namespace std; #define Max(a,b) ((a>b)?a:b) const int N = 1e6 + 10; char s[N], c[N*2]; int dp[N*2]; // 以i为中心的 回文半径 void init(int len) { c[0]='$'; for(int i=1;i<=len;i++){ c[i*2-1]='#'; c[i*2]=s[i]; } c[2*len+1]='#'; c[2*len+2]='