分析 我们需要加几个字符在末尾将其变为回文串。那么我们可以很容易考虑到,回文中心一定在这个字符串上。那么当一个回文中心确定时,这个串其实也就确定了。那么添加的长度为 。所以我们就应该寻找最大的可行的 。那么当一个字符可以为回文中心时当且仅当,回文中心加上回文半径覆盖了第 个字符的。那么求出每个点的回文半径就做完了。 代码 #include<bits/stdc++.h> using namespace std; const int N = 3e7 + 100; char ch[N],S[N]; int n,cnt,p[N],ans; int main() { scanf...