如下AC代码,hack数据如下:
4
3
E 1 2
E 1 3
E 1 4
正解为2,此ac代码结果为3。
#include<bits/stdc++.h>
using namespace std;
int n,m,fa[5005],cnt;
int enm[2005];
int find(int k)
{
if(fa[k]==k) return k;
else return fa[k]=find(fa[k]);
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=2*n;i++) fa[i]=i;
for(int i=1;i<=m;i++)
{
char type;
int a,b;
cin>>type;
scanf("%d%d",&a,&b);
if(type=='E')
{
if(enm[a]==0)
{
enm[a]=b;
}
else
{
fa[find(b)]=find(enm[a]);
enm[a]=0;
}
if(enm[b]==0)
{
enm[b]=a;
}
else
{
fa[find(a)]=find(enm[b]);
enm[b]=0;
}
}
else
{
fa[find(a)]=find(b);
}
}
for(int i=1;i<=n;i++)
{
if(fa[i]==i) cnt++;
}
printf("%d",cnt);
return 0;
}