社区讨论

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 条回复,欢迎继续交流。

正在加载回复...