P25773 [AtCoder] Endless Walk
普及+
题目描述

Problem Statement

We have a simple directed graph G with N vertices and M edges. The vertices are labeled as Vertex $1, Vertex 2, \ldots, Vertex N$.
The $i-th edge (1\leq i\leq M)$ goes from Vertex U_i to Vertex V_i.
Takahashi will start at a vertex and repeatedly travel on G from one vertex to another along a directed edge.
How many vertices of G have the following condition: Takahashi can start at that vertex and continue traveling indefinitely by carefully choosing the path?

Input

Input is given from Standard Input in the following format:
N M
U_1 V_1
U_2 V_2
$\vdots$
U_M V_M

Output

Print the answer.

Constraints

  • $1 \leq N \leq 2\times 10^5$
  • $0 \leq M \leq \min(N(N-1), 2\times 10^5)$
  • $1 \leq U_i,V_i\leq N$
  • $U_i\neq V_i$
  • $(U_i,V_i)\neq (U_j,V_j)$ if $i\neq j$.
  • All values in input are integers.

Sample Input 1

5 5
1 2
2 3
3 4
4 2
4 5

Sample Output 1

4

When starting at Vertex 2, Takahashi can continue traveling indefinitely: $2 \to$ $3 \to$ $4 \to$ $2 \to$ $3 \to$ $\cdots$
The same goes when starting at Vertex 3 or Vertex 4.
From Vertex 1, he can first go to Vertex 2 and then continue traveling indefinitely again.
On the other hand, from Vertex 5, he cannot move at all.
Thus, four vertices ―Vertex 1, 2, 3, and 4― satisfy the conditions, so 4 should be printed.

Sample Input 2

3 2
1 2
2 1

Sample Output 2

2

Note that, in a simple directed graph, there may be two edges in opposite directions between the same pair of vertices.
Additionally, G may not be connected.

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
5 5 1 2 2 3 3 4 4 2 4 5
样例输出
4