只错了3个hack,问题出在哪儿?
#include<bits/stdc++.h>
using namespace std;
int n,k;
int fa[400005],bj[400005],flag[400005]={0};
int fd(int x)
{
if(fa[x]==x)return x;
else return fa[x]=fd(fa[x]);
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>k;
if(n!=k)
{
cout<<"No\n";
return 0;
}
for(int i=1;i<=n;i++)
{
fa[i]=i;
}
while(k--)
{
int a,b;
cin>>a>>b;
flag[a]=1;
flag[b]=1;
int x=fd(a),y=fd(b);
if(x!=y)fa[y]=x;
else bj[x]++;
}
for(int i=1;i<=n;i++)
{
if(bj[i]>1||flag[i]==0)
{
cout<<"No\n";
return 0;
}
}
cout<<"Yes\n";
return 0;
}