#B3613. 图的存储与出边的排序

图的存储与出边的排序

题目描述

给定一个 nn 个点 mm 条边的有向图 GG,结点编号从 11nn。对于 u=1,2,3,nu = 1, 2, 3, \dots n,依次完成如下要求:
对于 uu 的所有出边(即从 uu 出发的边),按照从小到大的顺序输出出边所指向的节点编号。

依次完成的含义是,先按顺序输出 u=1u = 1 的出边所指向的点的编号,再按顺序输出 u=2u = 2 的出边所指向的点的编号……最后按顺序输出 u=nu = n 的出边所指向的点的编号。

输入格式

本题单测试点内有多组数据

数据的第一行是一个整数 TT,表示数据的组数。

对于每组数据的格式如下:
每组数据的第一行是两个整数,分别表示点的个数 nn 和边的个数 mm
接下来 mm 行,每行两个整数 u,vu, v,表示一条由 uu 指向 vv 的边。

保证每组数据内不存在重边。

输出格式

对于每组数据:
输出 nn 行,每行若干个用空格隔开的整数。第 ii 行输出节点 ii 的出边所指向的节点编号。

注意,如果一个结点不存在出边,你同样需要输出一个空行

2
3 4
1 3
1 2
3 2
3 1
3 9
1 3
2 3
3 3
1 2
2 2
3 2
1 1
2 1
3 1
2 3

1 2
1 2 3
1 2 3
1 2 3

提示

数据规模与约定:

对于全部的测试点,保证 1T,n,m5×1051 \leq T, n, m \leq 5 \times 10^5,但同时各测试点的 nnmm 之和均不超过 5×1055 \times 10^5,即 n,m5×105\sum n, \sum m \leq 5 \times 10^5。且 1u,vn1 \leq u, v \leq n,每组数据内不存在重边。

提示

请注意大量读入输出对程序效率造成的影响。