为什么更新树高的时候需要新建一个版本
查看原帖
为什么更新树高的时候需要新建一个版本
482728
Engulf楼主2023/8/9 08:32
root[i] = root[i - 1];
int x = find(root[i], a), y = find(root[i], b);
if (fa[x] == fa[y]) continue;
if (dep[x] < dep[y]) swap(x, y);
merge(root[i - 1], root[i], 1, n, fa[y], fa[x]);
if (dep[x] == dep[y]) root[i] = add(root[i], 1, n, fa[x]);

最后一行若写成

if (dep[x] == dep[y]) dep[findnode(root[i], 1, n, fa[x])]++;

会在 #2, #5, #6 中 TLE

这个新建的版本是如何影响运行时间的,感觉这个版本没有任何用处

2023/8/9 08:32
加载中...