Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
68233 | 杨中琦 | 通信系统 | C++ | 通过 | 100 | 327 MS | 256 KB | 861 | 2023-02-03 15:41:51 |
#include<bits/stdc++.h> using namespace std; int f[1010]; int cnt=0; int findFather(int x){ int a=x; while(x!=f[x])x=f[x]; while(a!=f[a]){ int z=a; a=f[a]; f[z]=x; } return x; } int flag_false=0; bool unionf(int a,int b){ int fa=findFather(a); int fb=findFather(b); if(fa!=fb){ cnt++; f[fa]=fb; return true; } else{ flag_false=1; return false; } } int main(){ int m,n; while(cin>>n>>m){ if(m==0&&n==0)break; for(int i=1;i<1010;i++)f[i]=i; int a,b; cnt=1; flag_false=0; for(int i=0;i<m;i++){ cin>>a>>b; unionf(a,b); } if(cnt==n&&flag_false==0)cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0; }