题解 [ABC276B] Adjacency List
大家好,我是 CQ-C2024 蒟蒻 CJH。
题意
题目翻译说得很清楚了。
分析思路
直接使用 vector 平面向量存储即可,每给出一条边就在每个点的邻居中添加相应的点。
输出时用 sort 排序即可。
代码
//the code is from chenjh
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> G[100001];//存储每一个点的邻居。
int main(){
int n,m;
scanf("%d%d",&n,&m);
int u,v;
while(m--){
scanf("%d%d",&u,&v);
G[u].push_back(v);//在 u 的邻居中加入 v。
G[v].push_back(u);//同上
}
for(int i=1;i<=n;++i){
printf("%d ",(int)G[i].size());//邻居的个数。
sort(G[i].begin(),G[i].end());//注意要排序!
for(int v:G[i]) printf("%d ",v);//输出每一个邻居。
putchar('\n');
}
return 0;
}
谢谢大家!

浙公网安备 33010602011771号