题目链接
题意给你n个颜色 m个关系 颜色和颜色有关系就是他们在一行或者在一列 可以相邻
没关系就不能在一行 不能在一列 不能相邻
学了两个骚操作,一个是auto代替类型,另一个是增强for遍历
我觉得没有必要开pair
有关系的放一列,最后扫一遍把没关系的放后面
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5+7;
vector<int> vec[maxn];
int n,m,u,v;
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>u>>v;
vec[u].push_back(i);
vec[v].push_back(i);
}
m++;
for(int i=1;i<=n;i++){
if(vec[i].empty()){
vec[i].push_back(m++);
}
}
for(int i=1;i<=n;i++){
cout<<vec[i].size()<<endl;
for(auto j:vec[i])
cout<<i<<" "<<j<<endl;
}
return 0;
}