告诫后人
查看原帖
告诫后人
87064
ducati寄楼主2023/6/26 09:34
  1. 请注意你的空间消耗。在我的第一发提交里,我将用于撤销的栈开到了 32n32n 级别,事实上只要开到 3n3n 就足够了,因为线段树上每条直链包含的询问两两不同,而每次合并只会修改三个位置的值(祖先、父边及连通块大小)。

2. 可撤销并查集,不要路径压缩!!!

  • I. 字面意思:不要在跳祖先的时候,把连向祖先的边给改了。

  • II. 不要在跳祖先的时候,把父边边权给改了。换言之,别在跳祖先的时候,把边权给路径压缩了,不然存储的边权是个啥玩意?

  1. 我们可能会计算出两个点到根路径上的边权和。为按秩合并需要,我们可能会在随后的合并中交换这两个点的编号,别忘了把存储的边权和也交换一下。

  2. 请保证每个询问在线段树上插入的区间非空,否则可能导致死循环。

2023/6/26 09:34
加载中...