0分,但不知道哪里错了,麻烦大佬帮蒟蒻调一下。
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
typedef long long ll;
const int N = 300001;
int n, m, x, y, s[N], t[N], f[N];
int find(int x) {
if (f[x] == x)
return x;
return f[x] = find(f[x]);
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++)
f[i] = i;
for (int i = 1; i <= m; i++) {
scanf("%d%d", &s[i], &t[i]);
int fx = find(s[i]), fy = find(t[i]);
if (fx == fy) {
puts("No");
return 0;
}
f[fx] = fy;
}
puts("Yes");
for (int i = 1; i < m; i++)
printf("%d %d\n", s[i], t[i]);
printf("%d ", s[m]);
for (int i = 1; i <= n; i++) {
y = find(i);
if (x != y && y == i)
printf("%d\n%d ", i, i);
}
printf("%d\n", t[m]);
}