手机网站用什么软件做,海外网站推广公司,wordpress交流论坛,做网站哪种字体好看# 图的存储
## 题目描述 给定一个 n 个顶点 m 条边的无向图。请以邻接矩阵和邻接表的形式输出这一张图。
## 输入格式
第一行输入两个正整数 n 和 m#xff0c;表示图的顶点数和边数。 第二行开始#xff0c;往后 m 行#xff0c;每行输入两个以空格隔开的正整数 u,v表示图的顶点数和边数。 第二行开始往后 m 行每行输入两个以空格隔开的正整数 u,v表示 u,v 顶点之间有一条边直接相连。
## 输出格式
首先输出 n 行 n 列的矩阵以空格隔开每一行之间的数表示邻接矩阵。第 i 行第 j 列的数为 1 则表示顶点 i,j 之间有一条边直接相连若为 0 则表示没有直接相连的边。 再往后输出 n 行。第 i 行首先先输出一个整数 di表示这个顶点的度数再按照从小到大的顺序依次输出与顶点 i 直接相连的所有顶点。 ### 样例输入 #1 5 5 1 2 2 3 3 5 1 3 3 4 ### 样例输出 #1 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0 2 2 3 2 1 3 4 1 2 4 5 1 3 1 3 数据保证对于所有数据1 n 10001 m 10^5且图无重边无自环。
#include bits/stdc.h
using namespace std;
const int N1e610;
int g[1001][1001];
vector int k[N];
void add1(int a,int b)
{g[a][b]1,g[b][a]1;
}
void add2(int a,int b)
{k[a].push_back(b);k[b].push_back(a);
}
int main()
{int n,m;cinnm;for (int i0;im;i){int a,b;cinab;add1(a,b);add2(a,b);}for (int i1;in;i){for (int j1;jn;j)coutg[i][j] ;coutendl;}for (int i1;in;i){coutk[i].size() ;sort(k[i].begin(),k[i].end());for (int j0;jk[i].size();j) coutk[i][j] ;coutendl;}return 0;
}