社区讨论

关于倍增LCA

P3302[SDOI2013] 森林参与者 2已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@lociqpxj
此快照首次捕获于
2023/10/30 14:28
2 年前
此快照最后确认于
2023/11/05 01:48
2 年前
查看原帖
CPP
int ling = log2(dep[x]);
for(int i=1;i<=ling;i++)
g[x][i] = g[g[x][i-1]][i-1];
在这道题中,这种写法会RE
题解解释说是
如果我们连边重构 update_LCA 时采用 lg[deep[u]] ,可能存在一种情况:这个点 i 原本的 ans[i][j],j 最大已经大于了 lg[deep[u]] (即原来深度更深)
但是我们进行加边的时候,只会更新新加入的子树的倍增数组,而新加入的子树的depth只会增大不会减小吧,那为什么原来的深度会更深呢
望解答

回复

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

正在加载回复...