2 条题解

  • 0
    @ 2024-11-30 10:51:19

    #include<bits/stdc++.h> using namespace std; const int N=1010; int f[N*2]; int find(int x) { if(f[x]!=x) f[x]=find(f[x]); return f[x]; }

    int main() { int n,m; cin>>n>>m; for(int i=1;i<=2*n;i++) f[i]=i; while(m--) { char op; int a,b; scanf(" %c%d%d",&op,&a,&b); if(op=='F') f[find(a)]=find(b); else{ f[find(a+n)]=find(b); f[find(b+n)]=find(a); } } int cnt=0; for(int i=1;i<=n;i++) if(f[i]==i) cnt++; cout<<cnt; return 0; }

    • 0
      @ 2024-11-30 10:47:49

      并查集

      • 1

      信息

      ID
      920
      时间
      2000ms
      内存
      64MiB
      难度
      6
      标签
      (无)
      递交数
      17
      已通过
      10
      上传者