100pts,但是感觉不对?
查看原帖
100pts,但是感觉不对?
1395112
IdtwteiNeptune楼主2024/9/4 22:13

学了假的 SAM。

struct TREE{ int ne[SZ],len,siz,fa; }t[N<<1];
int tot=1,las=1;
void ins(int c){
	int p=las,np=++tot,v,nv; las=np;
	for(;p&&!t[p].ne[c];p=t[p].fa) t[p].ne[c]=np;
	if(!p) return t[np].fa=1,void(); v=t[p].ne[c];
	if(t[v].len==t[p].len+1) return t[np].fa=v,void();
	t[nv=++tot]=t[v],t[nv].len=t[p].len+1;
	for(;p&&t[p].ne[c]==v;p=t[p].fa) t[p].ne[c]=nv;
	t[np].fa=t[v].fa=nv;
}

中间缺少

t[np].len=t[p].len+1;

但是它过了? 提交记录

这是数据问题,还是这样就是对的?

2024/9/4 22:13
加载中...