题解 [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;
}

谢谢大家!

posted @ 2022-11-11 16:42  Chen_Jinhui  阅读(10)  评论(0)    收藏  举报  来源