#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=5*1e4+5;
int par[maxn],res,n,num[maxn],Y,N;
void init()
{
for(int i=1;i<=n;i++)
par[i]=i;
Y=N=0;
}
int find(int num)
{
if(par[num]==num)
return num;
return par[num]=find(par[num]);
}
int main()
{
int x,y,s[5],t;
char ss;
scanf("%d",&t);
while(t--&&scanf("%d\n",&n)!=EOF)
{
init();
while(1)
{
ss=getchar();
if(!(ss=='c'||ss=='q')) break;
scanf("%d",&x);
getchar();
scanf("%d",&y);
getchar();
int fa=find(x),fb=find(y);
if(ss=='c')
{
if(fa!=fb)
par[fa]=fb;
}
else
{
if(fa==fb)
Y++;
else
N++;
}
}
printf("%d,%d\n",Y,N);
if(t)
printf("\n");
}
return 0;
}
UVa 793 输入处理+并查集
最新推荐文章于 2021-06-18 20:46:48 发布