CF1547G.How Many Paths?

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a directed graph GG which can contain loops (edges from a vertex to itself). Multi-edges are absent in GG which means that for all ordered pairs (u,v)(u, v) exists at most one edge from uu to vv . Vertices are numbered from 11 to nn .

A path from uu to vv is a sequence of edges such that:

  • vertex uu is the start of the first edge in the path;
  • vertex vv is the end of the last edge in the path;
  • for all pairs of adjacent edges next edge starts at the vertex that the previous edge ends on.

We will assume that the empty sequence of edges is a path from uu to uu .

For each vertex vv output one of four values:

  • 00 , if there are no paths from 11 to vv ;
  • 11 , if there is only one path from 11 to vv ;
  • 22 , if there is more than one path from 11 to vv and the number of paths is finite;
  • 1-1 , if the number of paths from 11 to vv is infinite.

Let's look at the example shown in the figure.

Then:

  • the answer for vertex 11 is 11 : there is only one path from 11 to 11 (path with length 00 );
  • the answer for vertex 22 is 00 : there are no paths from 11 to 22 ;
  • the answer for vertex 33 is 11 : there is only one path from 11 to 33 (it is the edge (1,3)(1, 3) );
  • the answer for vertex 44 is 22 : there are more than one paths from 11 to 44 and the number of paths are finite (two paths: [(1,3),(3,4)][(1, 3), (3, 4)] and [(1,4)][(1, 4)] );
  • the answer for vertex 55 is 1-1 : the number of paths from 11 to 55 is infinite (the loop can be used in a path many times);
  • the answer for vertex 66 is 1-1 : the number of paths from 11 to 66 is infinite (the loop can be used in a path many times).

输入格式

The first contains an integer tt ( 1t1041 \le t \le 10^4 ) — the number of test cases in the input. Then tt test cases follow. Before each test case, there is an empty line.

The first line of the test case contains two integers nn and mm ( 1n4105,0m41051 \le n \le 4 \cdot 10^5, 0 \le m \le 4 \cdot 10^5 ) — numbers of vertices and edges in graph respectively. The next mm lines contain edges descriptions. Each line contains two integers aia_i , bib_i ( 1ai,bin1 \le a_i, b_i \le n ) — the start and the end of the ii -th edge. The vertices of the graph are numbered from 11 to nn . The given graph can contain loops (it is possible that ai=bia_i = b_i ), but cannot contain multi-edges (it is not possible that ai=aja_i = a_j and bi=bjb_i = b_j for iji \ne j ).

The sum of nn over all test cases does not exceed 41054 \cdot 10^5 . Similarly, the sum of mm over all test cases does not exceed 41054 \cdot 10^5 .

输出格式

Output tt lines. The ii -th line should contain an answer for the ii -th test case: a sequence of nn integers from 1-1 to 22 .

输入输出样例

  • 输入#1

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

    输出#1

    1 0 1 2 -1 -1 
    1 
    -1 -1 -1 
    1 0 0 0 0 
    1 1 2 1
首页