ccf#NOI2024F. 树形图(graphee)

树形图(graphee)

题目描述

给定一个 nn 个点 mm 条边的简单有向图 GG,顶点从 11nn 编号。其中简单有向图的定义为不存在重边与自环的有向图。

定义顶点 rr 是有向图 GG 的根当且仅当对于 1kn1 \leq k \leq n,顶点 rr 到顶点 kk 存在恰好一条有向简单路径,其中简单路径的定义为不经过重复点的路径

定义每个点的种类如下:

  • 若顶点 rr 是图 GG 的根,则称顶点 rr 为图 GG一类点
  • 若顶点 rr 不是图 GG 的一类点,且存在一种删边的方案,使得图 GG 在删去若干条边后得到的图 GG' 满足:所有图 GG 中的一类点都是 GG' 的根,且顶点 rr 也是图 GG' 的根,则称顶点 rr 为图 GG二类点
  • 若顶点 rr 不满足上述条件,则称顶点 rr 为图 GG三类点

根据上述定义,图 GG 的每个点都恰好属于一类点、二类点、三类点之一。你需要判断点 1n1 \sim n 分别属于这三个种类中的哪一种。

输入格式

从文件 graphee.in 中读入数据。

本题有多组测试数据。

输入的第一行包含一个非负整数 cc,表示测试点编号。c=0c = 0 表示该测试点为样例。

输入的第二行包含一个正整数 tt,表示测试数据组数。

接下来依次输入每组测试数据,对于每组测试数据:

输入的第一行包含两个正整数 n,mn, m,分别表示有向图的点数和边数。

接下来 mm 行,每行包含两个正整数 u,vu, v,表示一条从 uuvv 的有向边。保证 1u,vn1 \leq u, v \leq n,且给定的有向图 GG 不存在重边与自环。

输出格式

输出到文件 graphee.out 中。

对于每组数据,输出一行包含一个长度恰好为 nn 的字符串 ss 表示每个点的种类。其中 si=1s_i = 1 表示点 ii一类点si=2s_i = 2 表示点 ii二类点si=3s_i = 3 表示点 ii三类点

0
2
4 7
2 1
4 1
1 4
2 3
3 4
2 4
4 3
4 5
1 2
2 3
2 4
3 1
4 3
3233
2211

样例 1 解释

样例 1 共包含两组测试数据。

对于第一组测试数据,输入的图如下:

由于 1,3,41, 3, 4 均不存在到达 22 的路径,因此 1,3,41, 3, 4 均为三类点。由于 2211 的有向简单路径共有三条:212 \to 12412 \to 4 \to 123412 \to 3 \to 4 \to 1,因此 22 不是一类点。删去边 141 \to 4414 \to 1343 \to 4434 \to 3 后,221,3,41, 3, 4 的有向简单路径均唯一,因此 22 是图 GG' 的根,即 22 是二类点。

对于第二组测试数据,输入的图如下:

容易发现 3,43, 4 均为一类点。删去边 232 \to 3 后,每个点到其他所有点的有向简单路径均唯一,因此 1,21, 2 均为二类点。

样例 2

见选手目录下的 graphee/graphee2.ingraphee/graphee2.ans

这个样例满足测试点 22 的约束条件。

样例 3

见选手目录下的 graphee/graphee3.ingraphee/graphee3.ans

这个样例满足测试点 3,43, 4 的约束条件。

样例 4

见选手目录下的 graphee/graphee4.ingraphee/graphee4.ans

这个样例满足测试点 5,65, 6 的约束条件。

样例 5

见选手目录下的 graphee/graphee5.ingraphee/graphee5.ans

这个样例满足测试点 8,98, 9 的约束条件。

样例 6

见选手目录下的 graphee/graphee2.ingraphee/graphee2.ans

这个样例满足测试点 14,1514, 15 的约束条件。

数据范围

对于所有测试数据保证:1t101 \leq t \leq 102n1052 \leq n \leq 10^51m2×1051 \leq m \leq 2 \times 10^5,且图 GG 不存在重边与自环。

测试点编号 tt \leq nn \leq mm \leq 特殊性质
11 33 1010 2020
22 1010 10310^3 2,0002, 000 A
3,43, 4 B
5,65, 6
77 10510^5 2×1052 \times 10^5 A
8,98, 9 BC
101310 \sim 13 B
14,1514, 15 C
162016 \sim 20

特殊性质 A:保证不存在一类点。

特殊性质 B:保证不存在二类点。

特殊性质 C:保证编号为 11 的点为图 GG 的一类点。