题意
给定一个(n)个点(m)条边的图,构建一个(n^2)个点的图,新图的每个点都可以看成一个二元组,新图上的点((a,b)和(a′,b′))之间有边,当且仅当原图中((a,a′),(b,b′))之间有边,问新图的联通块个数。
做法
首先没有邻点的点拿出来随便搞
剩下考虑联通块
- 块内点对
二分图的话,贡献为(2)
否则,贡献为(1) - 块间点对
二分图-二分图,贡献为(2)
二分图-其他,贡献为(1)
其他-其他,贡献为(1)
题外话
有没有觉得跟某题很像啊,idea打这来的
给定一个(n)个点(m)条边的图,构建一个(n^2)个点的图,新图的每个点都可以看成一个二元组,新图上的点((a,b)和(a′,b′))之间有边,当且仅当原图中((a,a′),(b,b′))之间有边,问新图的联通块个数。
首先没有邻点的点拿出来随便搞
剩下考虑联通块
有没有觉得跟某题很像啊,idea打这来的