社区讨论

警钟撅烂

P7735[NOI2021] 轻重边参与者 5已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@lqeuvgro
此快照首次捕获于
2023/12/21 15:02
2 年前
此快照最后确认于
2023/12/21 18:54
2 年前
查看原帖
查询的时候两条链的初值的 presuf 不要赋成 114514 !!!!要赋成一个大于 2n 的数!!!
CPP
inline int pathquery(int u1,int u2){
	tree res1={0,20120712,20120712,0},res2={0,20120712,20120712,0};
	while(top[u1]!=top[u2]){
		if(dep[top[u1]]>dep[top[u2]]){
			res1=merge(query(1,1,n,dfn[top[u1]],dfn[u1]),res1);
			u1=fa[top[u1]];
		}
		else{
			res2=merge(query(1,1,n,dfn[top[u2]],dfn[u2]),res2);
			u2=fa[top[u2]];
		}
	}
	if(dfn[u1]<dfn[u2])res2=merge(query(1,1,n,dfn[u1],dfn[u2]),res2);
	else res1=merge(query(1,1,n,dfn[u2],dfn[u1]),res1);
	return res1.sum+res2.sum+(res1.pre==res2.pre); 
}

回复

8 条回复,欢迎继续交流。

正在加载回复...