【洛谷1892】團伙 並查集
阿新 • • 發佈:2019-01-31
題意
題面說的很清楚
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int n,m,ans=0; int fa[2010],res[2010]; int getfa(int x){return fa[x]==x?fa[x]:fa[x]=getfa(fa[x]);} int main() { int n,m; scanf("%d%d",&n,&m); memset(res,0,sizeof(res)); for (int i=1;i<=2*n;i++) fa[i]=i; for (int i=0;i<m;i++) { char c;int x,y; scanf(" %c%d%d",&c,&x,&y); if (c=='F') { int p=getfa(x),q=getfa(y); fa[p]=q; } else { int p=getfa(x),pp=getfa(x+n),q=getfa(y),qq=getfa(y+n); fa[pp]=q;fa[p]=qq; } } for (int i=1;i<=n;i++) res[getfa(i)]++; for (int i=1;i<=2*n;i++) if (res[i]) ans++; printf("%d\n",ans); return 0; }