#P1564. 路线个数(road)

路线个数(road)

题目描述

小易这一天来到了一个陌生的城市,这个城市可以表示为一张有向图,但可能存在环。小易初始在1号点,同时小易觉得这个城市很有趣,所以他想知道从1号点到其他点的路线个数。

对于每个顶点 v ,输出以下四个值之一:

  • 0 ,如果没有从 1 到 v 的路径;
  • 1 ,如果只有一条从 1 到 v 的路径;
  • 2 ,如果从 1到 v 有多个路径,并且路径数量有限;
  • −1 ,如果从 1 到 v 的路径数是无限的。

输入格式

输入的第一行包含一个整数t1t104 t(1≤t≤10^4),表示输入中的测试案例数量。接下来是t t 个测试案例。每个测试案例前都有一个空行。

每个测试案例的第一行包含两个整数n n m m 1n4×1050m4×105 1≤n≤4×10^5,0≤m≤4×10^5 ),分别表示图中顶点和边的数量。接下来的m行包含边描述。每行包含两个整数ai a_i bi b_i 1ai,bin 1\le a_i,b_i \le n ),表示第i i 条边的起点和终点。图中的顶点编号从1 1 n n 。给定的图可能包含环(即ai a_i 可能等于bi b_i ),但不能包含多重边(即对于i i 不等于j j 的情况,ai a_i 不能等于ai a_i bi b_i 不能等于bj b_j )。

所有测试案例中n n 的总和不超过4×105 4×10^5 。同样地,所有测试案例中m m 的总和也不超过4×105 4×10^5

输出格式

输出应包含t t 行。第i i 行应该包含第i i 个测试案例的答案:一个由n n 个整数组成的序列,这些整数的取值范围是从1 -1 2 2

样例数据

5

6 7
1 4
1 3
3 4
4 5
2 1
5 5
5 6

2 0

3 3
1 2
2 3
3 1

5 0

4 4
1 2
2 3
1 4
4 3
1 0 1 2 -1 -1 
1 0
-1 -1 -1 
1 0 0 0 0 
1 1 2 1

样例解释

第一组数据图如下所示

数据规模与约定

输入的附加限制条件:所有测试用例中n n 的总和不超过 4105 4⋅10^5

测试点 t t n n m m 特殊情况 特殊情况
12 1-2 1t104 1 \le t \le 10^4 1n103 1 \le n \le 10^3 1m2103 1 \le m_ \le 2\cdot10^3
34 3-4 1n4105 1 \le n \le 4 \cdot 10^5 1m4105 1 \le m_ \le 4\cdot10^5 一定不存在环
56 5-6 2n4105 2 \le n \le 4 \cdot 10^5 1m4105 1 \le m_ \le 4\cdot10^5 可能存在环,但不存在自环
78 7-8 1n4105 1 \le n \le 4 \cdot 10^5 可能存在环和自环
910 9-10 1m4105 1 \le m_ \le 4\cdot10^5