#include<bits/stdc++.h>
using namespace std;
int n, m;
int fa[105];
int fun(int k) //找祖先
{
while(fa[k]!=k)
{
k=fa[k]=fa[fa[k]]; //路径压缩
}
return k;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++) fa[i]=i; //并查集初始化
for(int i=1;i<=m;i++) {
int a, b;
cin>>a>>b;
fa[a]=fun(b); //连接祖先
}
bool p=0;
for(int i=1;i<n;i++) { //遍历n-1个点
if(fun(i)!=fun(i+1)) { //祖先不一样,非连通
p=1;
break;
}
}
if(p) cout<<"No";
else cout<<"Yes";
return 0;
}
P1790 小胡同学的连通图(并查集-详细注释)
最新推荐文章于 2024-09-29 18:03:50 发布