警示后人 树剖做法
查看原帖
警示后人 树剖做法
461012
dyyzy楼主2023/11/6 16:23

如果你线段树只用了一个标记,树剖过程中请注意标记是否统一,如下所示

inline void change(int u,int v,int val){
	while(top[u]!=top[v]){
		if(dep[top[u]]<dep[top[v]]) swap(u,v),val*=-1;
		change(1,id[top[u]],id[u],val);//这一步
		u=fa[top[u]];if(u==v)return;
	}
	if(dep[u]<dep[v]) swap(u,v),val*=-1;
	change(1,id[son[v]],id[u],val);//还有这一步
}
2023/11/6 16:23
加载中...