社区讨论
WA#5-#7求调玄关
P3805【模板】Manacher参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mj0y5at0
- 此快照首次捕获于
- 2025/12/11 12:37 3 个月前
- 此快照最后确认于
- 2025/12/13 16:05 3 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
char s[55000000],q[55500000];
int len,ans,d[15000000],k;
int main()
{
q[0]='#';
q[1]='*';
while(cin>>s[len])q[2*len+2]=s[len],q[2*len+3]='*',len++;
len=2*len+2;
for(int i=0,l=0,r=-1;i<len;i++)
{
k=(i>r)?1:min(d[l+r-i],r-i+1);
while(0<i-k&&i+k<len&&q[i-k]==q[i+k])k++;
d[i]=k--;
if(i+k>r)l=i-k,r=i+k;
ans=max(d[i],ans);
}
cout<<ans-1;
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...