Problem - 330B - Codeforces
解析:
1到任一点距离不超过二,并且有部分点不可以连边,直接统计所有不能连边的点,从之外的点中选一个点当作中心,构造菊花图即可。
#include<bits/stdc++.h>
using namespace std;
int n,m;
signed main(){
scanf("%d%d",&n,&m);
int p;
set<int>s;
for(int i=1;i<=m;i++){
int a,b;
scanf("%d%d",&a,&b);
s.insert(a),s.insert(b);
}
for(int i=1;i<=n;i++) if(s.count(i)==0){
p=i;
break;
}
cout<<n-1<<endl;
for(int i=1;i<=n;i++){
if(i!=p) printf("%d %d\n",p,i);
}
return 0;
}