【算法】837.连通块中点的数量
- IT业界
- 2025-09-14 20:00:03

题目
837. 连通块中点的数量
思路与上一题类似,多了一个统计集合数量,可以定义一个数组用于记录集合个数,初始时设置为1,每要合并就更新一次。
代码 #include<iostream> using namespace std; const int N = 100010; int n, m; int p[N],siz[N]; int find(int x) { if (p[x] != x) p[x] = find(p[x]); return p[x]; } int main() { cin >> n >> m; for (int i = 1;i <= n;i++) { p[i] = i; siz[i] = 1; } while (m--) { char op[3]; cin >> op; int a, b; if (op[0] == 'C') { cin >> a >> b; if (find(a) == find(b)) continue; siz[find(b)] = siz[find(a)] + siz[find(b)]; p[find(a)] = find(b); } else if (op[1] == '1') { cin >> a >> b; if (find(a) == find(b)) cout << "Yes" << endl; else cout << "No" << endl; } else { cin >>a; cout << siz[find(a)] << endl; } } return 0; }【算法】837.连通块中点的数量由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【算法】837.连通块中点的数量”
上一篇
              CSS-妙用Sass
 
               
               
               
               
               
               
               
               
   
   
   
   
   
   
   
   
  