提交时间:2023-02-03 15:14:28

运行 ID: 68225

#include<bits/stdc++.h> using namespace std; int p[1100]; int find(int x){ if(p[x]!=x) p[x]=find(p[x]); return p[x]; } int main(){ int n,m; while(scanf("%d%d",&n,&m),n||m){ memset(p,-1,sizeof p); int cnt=0,flag=0,tot=0; for(int i=1;i<=n;i++) p[i]=i; while(m--){ int a,b; cin>>a>>b; int pa=find(a),pb=find(b); if(pa!=pb) p[pa]=pb; else flag=1; } for(int i=1;i<=n;i++){ if(p[i]==i) tot++; } cout<<(flag==0&&tot==1?"Yes":"No")<<endl; } return 0; }