萌新求助:关于马拉车的写法。
查看原帖
萌新求助:关于马拉车的写法。
257206
Herio楼主2021/10/30 17:37
void manacher(){
	s[0]='#';
	int mx,id;mx=id=0;
	for(int i=1;i<=n;i++){
		p[i]=mx>i?min(mx-i,p[(id<<1)-i]):1;
		while(s[i+p[i]]==s[i-p[i]]) p[i]++;
		if(i+p[i]-1>mx){	//去掉-1
			mx=i+p[i]-1;   //去掉-1
			id=i;
		}
		a[(p[i]-1)<<1|1]++;
	}
}

不去掉减1,去掉减1都能过掉这题,这两个写法都是对的吗?

2021/10/30 17:37
加载中...