分析
考虑并查集。
对于 \(a_i,b_i,d_i\),若 \(a_i,b_i\) 在之前的满足要求的操作中,\(a_i,b_i\) 不在同一个集合里,则在之前 \(X_{a_i},X_{b_i}\) 的相对差值是可以任意改变的。令 \(k=X_{a_i}-X_{b_i}\),则我们需要将 \(a_i\) 所在集合中所有元素的值增加 \(d_i-k\)。然后将 \(a_i,b_i\) 所在集合合并。
很显然,对于将集合中所有元素增加一定值再与另一个集合合并的操作,可以按秩合并修改两个集合中包含元素数量少的那个。这个暴力处理即可。
同理,在 \(a_i,b_i\) 在同一个集合里时,由于其相对差值已经确定,只需要看 \(X_{a_i}-X_{b_i}\) 是否与 \(d\) 相等。
代码
Link.
标签:Set,题解,ABC328F,Good,集合,Query,abc328 From: https://www.cnblogs.com/harmisyz/p/18058642