摘要: 利用并查集按秩合并,保存每个点合并的时间; 求时间时,就一直跳u=fa[u],并记录路径上时间的最大值,代表最后一次合并的时间; 因为树高是$log$的,所以时间复杂度是$\mathcal{O}(mlogn)$ 阅读全文
posted @ 2019-04-17 23:56 LuitaryiJack 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 反向操作,先把所有的标记都打上(记得统计标记的数目),然后依次撤销,合并到自己的上一个点pre,即fa[u]=getf(pre[u]) 2019.04.16 阅读全文
posted @ 2019-04-17 23:51 LuitaryiJack 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 就是板子、、、 节点中维护的值,就是1-i之间这个区间内出现了数的次数(权值线段树?雾)。然后当我们查询的时候,就是利用到了前缀和的思想,拿左端点那棵树和右端点一减~ 更新的时候需要新开的点就开,不需要的就连到原来的点上去,相当于更新一条链。这样复杂度是nlogn的。 好想大佬们都把根作为实参转进去 阅读全文
posted @ 2019-04-17 23:47 LuitaryiJack 阅读(107) 评论(0) 推荐(0) 编辑