题意:给定n个元素,现在有2种合并操作和1种询问操作

1.单独合并两个元素所在的集合 2.合并一个区间内的元素所在的集合

询问:两个元素是否属于统一集合

神犇题解

感觉又涨了新姿势啊。。我们最恼火的是区间操作,如果老实去做肯定不行,但是转念一想,我们老实做的时候,为什么会损耗大量时间呢?因为区间合并后,很多元素本来就在同一集合里,不用判断了。

我们要怎么跳过无用的判断呢?我们记录一个每个元素以前第一个和它不处在同一元素的位置,这样,已经合并过的元素就不会再被拿出来检验一遍了,也就是说,合并过的会直接跳过去,不会做多余的检查。

那么这样下来就是均摊O(alpha(n))了。