萌新求调qwq
  • 板块灌水区
  • 楼主Brainless_zxc
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/4/10 21:57
  • 上次更新2024/4/11 11:56:18
查看原帖
萌新求调qwq
661274
Brainless_zxc楼主2024/4/10 21:57

rt,P3805 Manacher 板子求调 qwq

#include<bits/stdc++.h>
using namespace std;
char s[11000001],a[22000001];
int n,P[22000001];
int ans=1;
inline void manacher(){
	int r=-1,c;
	for(int i=1;i<n;i++){
		if(i<r){
			P[i]=min(P[c*2-i],c-i);
		}
		else{
			P[i]=1;
		}
		while(a[i+P[i]]==a[i-P[i]]){
			P[i]++;
		}
		if(P[i]+i>r){
			r=P[i]+i;
			c=i;
		}
	}
}
signed main(){
	scanf("%s",s);
	n=strlen(s);
	int k=0;
	a[k++]='!';
	a[k++]='$';
	for(int i=0;i<n;i++){
		a[k++]=a[i];
		a[k++]='$';
	}
	s[k++]='\0';
	n=k;
	manacher();
	for(int i=0;i<n;i++){
		ans=max(ans,P[i]-1);
	}
	cout<<ans<<endl;
}
//11000000 22000001
//hbhbbhhhhbbhhhhbhbhhbhhhhhbhhhhbbbhbbbbhbhhbhhhbbbhbhbbbbbbb 12

前四个点 WA,后面点全 RE,可能对算法的本质还是没太清楚,求调qwq

(这次 0 分提交是我的第 2.00k 提交。

2024/4/10 21:57
加载中...