提交时间:2023-02-02 17:28:53
运行 ID: 68197
#include<bits/stdc++.h> using namespace std; int n,m,p[1010],a,b; bool flag; int find(int x){ if(p[x]!=x) return p[x]=find(p[x]); return p[x]; } void merge(int a,int b){ int fa=find(a),fb=find(b); if(fa!=fb) p[fb]=fa; } int main(){ while(cin>>n>>m,n+m){ flag=1; for(int i=1;i<=n;i++) p[i]=i; while(m--){ cin>>a>>b; merge(a,b); } for(int i=1;i<=n;i++)find(i); for(int i=1;i<n;i++)if(p[i]-p[i+1]){flag=0;break;} cout<<(flag?"Yes":"No"); } return 0; }