AcWing 3587. 连通图
原题链接
简单
作者:
种种_4
,
2024-07-22 15:28:56
,
所有人可见
,
阅读 1
#include<bits/stdc++.h>
using namespace std;
const int N = 1010, M = 5010;
int n, m;
int p[N], cnt[M];
int find(int x)
{
if(x != p[x]) return p[x] = find(p[x]);
return p[x];
}
int main()
{
while(cin >> n >> m)
{
for(int i = 1; i <= n; i ++) p[i] = i, cnt[i] = 1;
for(int i = 1; i <= m; i ++)
{
int a, b;
cin >> a >> b;
a = find(a), b = find(b);
if(a != b)
{
p[a] = b;
cnt[b] += cnt[a];
}
}
if(cnt[find(n)] == n) puts("YES");//find里面的n随便
else puts("NO");
}
return 0;
}