Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
68296 | 张志鹏 | 通信系统 | C++ | 通过 | 100 | 141 MS | 264 KB | 675 | 2023-02-04 13:36:43 |
#include<bits/stdc++.h> using namespace std; int n,m,flag; int p[1001],cnt[1001]; int init(int x){ p[x]=x,cnt[x]=0; } int find(int x){ if(p[x]==x) return x; else return find(p[x]); } int merge(int a,int b){ p[b]=a; } int main(){ while(1>0){ flag=0; cin>>n>>m; if(n==0&&m==0) break; for(int i=1;i<=n;i++) init(i); for(int i=1;i<=m;i++){ int a,b; cin>>a>>b; int a1=find(a); int b1=find(b); if(a1!=b1) merge(a1,b1); } for(int i=1;i<=n;i++) cnt[find(i)]++; for(int i=1;i<=n;i++) if(cnt[i]) flag++; if(flag==1&&m==n-1) cout<<"Yes"; else cout<<"No"; cout<<endl; } return 0; } //真服了 没小写 WC