ABC049D题解

题面

Description:
\(n\) 个点,两张无向图。第一张图中有 \(k\) 条边,第二张图中有 \(l\) 条边。问对于每个 \(i\),在两张图中均可达的点对 \((i,j)\) 的数量。
\(2\leq n\leq2\times10^5,1\leq k,l\leq10^5\)


不用 map 的做法。
首先因为要做连通性,明显要用并查集。我们可以记录一下在第一张图中每个点属于哪个集合。
因为两点在两张图中均可达,等价于两个点在两张图中所在的集合相同,所以我们在已知第一张图的情况下,计算第二张图中每个点的归属。接下来,对于第二个图中的每个集合,我们可以开个桶计算出在它之中所有点在第一个图中的归属。这样,我们就计算出了该集合中哪些点在第一张图中也属于同一集合。那么这个题就做完了,时间复杂度 \(O(n)\)

代码

posted @ 2022-05-13 19:42  1358id  阅读(13)  评论(0编辑  收藏  举报