Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
68297 | 张志鹏 | 通信系统 | C++ | 运行出错 | 0 | 0 MS | 264 KB | 685 | 2023-02-04 13:49:22 |
#include<bits/stdc++.h> using namespace std; int n,m; int p[10001],d,flag; int init(int x){ p[x]=x; } int found(int x){ if(p[x]==x) return x; else return p[x]=found(p[x]); } int marge(int x,int y){ p[y]=x; } int main(){ while(1>0){ cin>>n>>m; if(n==m&&n==0) break; for(int i=1;i<=n;i++) init(i); for(int k=1;k<=m&&!flag;k++){ int a,b; cin>>a>>b; if(found(a)==found(b)){ if(!flag) cout<<"No",flag=1; } else marge(a,b); } if(!flag){ d=found(1); for(int i=2;i<=n;i++){ found(i); if(p[i]!=d&&!flag) cout<<"No",flag=1; } } if(!flag) cout<<"Yes"; cout<<endl; d=0,flag=0; } return 0; }