代码如下:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n,m,fa[1001],tf[1001],ans,dr[1001];
ll find(ll a)
{
if (fa[a]==a)
return a;
else
return fa[a]=find(fa[a]);
}
int main(){
scanf("%lld%lld",&n,&m);
for (ll i=1;i<=n;i++)
fa[i]=i;
for (ll i=1;i<=m;i++)
{
ll x,y;
char p;
cin>>p>>x>>y;
if (p=='E')
{
if (dr[x]==0)
dr[x]=find(y);
else
fa[find(x)]=fa[find(dr[x])];
if (dr[y]==0)
dr[y]=find(x);
else
fa[find(y)]=fa[find(dr[y])];
}
else
fa[find(x)]=fa[find(y)];
}
for (ll i=1;i<=n;i++)
{
ll l=find(i);
if (tf[l]==0)
{
tf[l]++;
ans++;
}
}
printf("%lld",ans);
return 0;
}
tf[i]:i是否标记了
fa[i]:i的父亲
dr[i]:i的敌人
帮帮我吧qwq