记录编号 593734 评测结果 AAAAAAAAAA
题目名称 宗教信仰 最终得分 100
用户昵称 Gravatar健康铀 是否通过 通过
代码语言 C++ 运行时间 1.093 s
提交时间 2024-09-10 20:15:39 内存使用 3.43 MiB
显示代码纯文本
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int MAXN = 50005;
  4. int fa[MAXN];
  5. int find(int x) {
  6. if (fa[x]!=x) {
  7. fa[x]=find(fa[x]);
  8. }
  9. return fa[x];
  10. }
  11. void join(int x, int y) {
  12. int rX = find(x);
  13. int rY = find(y);
  14. if (rX != rY) {
  15. fa[rY] = rX;
  16. }
  17. }
  18. int main() {
  19. freopen("religion.in","r",stdin);
  20. freopen("religion.out","w",stdout);
  21. ios::sync_with_stdio(false);
  22. cin.tie(0); cout.tie(0);
  23. int n, m, i, j;
  24. cin>>n>>m;
  25. for (i = 1; i <= n; i++) {
  26. fa[i]=i;
  27. }
  28. for (i = 0; i < m; i++) {
  29. int x,y;
  30. cin>>x>>y;
  31. join(x,y);
  32. }
  33. int ans=0;
  34. for (i=1;i<=n;i++) {
  35. // cout<<i<<" "<<fa[i]<<endl;
  36. if (find(i)==i) {
  37. // cout<<find(i)<<endl;
  38. ans++;
  39. }
  40. }
  41. cout<<ans<<endl;
  42. return 0;
  43. }