手搓一个DSU的板子,根据题意合并类型相同的点,最后找到并查集中集合的最大siz,满足最大siz的都放进答案数组中,最后输出答案数组的大小和内容即可。 #include <iostream> #include <vector> #include <numeric> struct DSU{ std::vector<int> f, siz; DSU(int n){ f.resize(n + 1); std::iota(f.begin(), f.end(), 0); siz.assign(n + 1, 1); } int find(int x){ if...