Run ID Author Problem Lang Verdict Score Time Memory Code Length Submit Time
68271 陈路垚 通信系统 C++ Accepted 100 302 MS 260 KB 642 2023-02-03 17:23:29

Tests(1/1):


#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){ int flag=0,cnt=0; memset(p,-1,sizeof p); // 初始化并查集 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[pb]=pa; // 加入统一集合 else flag=1; // flag为1表示出现了环 } // 判断是否有多个集合 for(int i=1;i<=n;i++){ if(p[i]==i) cnt++; } if(flag || cnt>1) cout<<"No"<<endl; else cout<<"Yes"<<endl; } return 0; }


Judgement Protocol: