题意
给定一个 \(n\) 个点的无向图,最初图中无边。两种操作:
1 x y
若 \(x,y\) 中有边,则删去;否则加入。2 x y
询问 \(x,y\) 是否连通。
\(x,y\) 均加密,真实的 \(x,y\) 为 \((x+lstans-1) mod\ n+1,(y+lstans-1) mod\ n+1\)。
题解
动态图连通性。但无需 \(LCT+ETT\),因为这是假加密。注意到 \(lstans\) 为 \(0\) 或 \(1\),则真实值只有两种情况。
\(O(n \log n)\) 的方法是线段树分治,但我看不懂。这里只说 \(O(n^{\frac{4}{3}} \log n)\) 的分块。
并查集支持撤销,但图上删边不是撤销。一种 \(O(n^2)\) 的暴力是,对于每个询问,将它前面的所有还存在的线段提出来,重新构建并查集。
受此启发,我们考虑分块,设块大小为 \(T\)。对每个块,将前面的所有还存在的线段提出来:这其中有两种,一种是此块中不可能出现的,状态一定不变;另一种是可能出现的,状态可能会变。我们对第一种先构建并查集。将第二种加入一个集合中(第一次加,第二次减,类似异或 \(1\))。
接着考虑块内的询问。用类似暴力的方法,将在块内且在此询问前的修改操作加入上面的集合中(方法同上)。此时,我们可以保证此集合大小不超过 \(T\)。于是可以在上面的并查集中加入此集合内的线段,得出答案后撤销。
分析复杂度,为 \(O(\frac{n}{T}n\log n)+O(T^2\log n)\)。当 \(T=n^{\frac{2}{3}}\) 时,为 \(O(n^{\frac{4}{3}}\log n)\)。
标签:frac,log,题解,线段,查集,CF1217F,lstans From: https://www.cnblogs.com/FishJokes/p/16787755.html