Run ID | Author | Problem | Lang | Verdict | Score | Time | Memory | Code Length | Submit Time |
---|---|---|---|---|---|---|---|---|---|
68179 | 张志鹏 | 通信系统 | C++ | Wrong Answer | 0 | 146 MS | 260 KB | 668 | 2023-02-02 16:47:42 |
#include<bits/stdc++.h> using namespace std; int n,m,flag; int p[1001],cnt[1001]; int init(int x){ p[x]=x; } 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=2;i<=n;i++){ int a1=find(1),b1=find(i); p[1]=a1,p[i]=b1; if(a1!=b1) flag=1; else flag=0; } if(flag==1) cout<<"NO"; else cout<<"YES"; cout<<endl; } return 0; }