#aBC245F. [ABC245F] Endless Walk

[ABC245F] Endless Walk

AT_abc245_f [ABC245F] Endless Walk

题目描述

给定一个包含 NN 个顶点和 MM 条边的简单有向图 GG,顶点编号为 11NN。第 ii 条边从顶点 UiU_i 指向顶点 ViV_i

高桥君可以从某个顶点出发,沿着有向边不断从一个顶点移动到另一个顶点。请你求出有多少个顶点满足:高桥君可以通过巧妙地选择路径,从该顶点出发,无限次地重复移动。

输入格式

输入通过标准输入给出,格式如下:

NN MM
U1U_1 V1V_1
U2U_2 V2V_2
\vdots
UMU_M VMV_M

输出格式

输出满足条件的顶点个数。

输入输出样例 #1

输入 #1

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

输出 #1

4

输入输出样例 #2

输入 #2

3 2
1 2
2 1

输出 #2

2

说明/提示

限制条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 0Mmin(N(N1), 2×105)0 \leq M \leq \min(N(N-1),\ 2 \times 10^5)
  • 1Ui,ViN1 \leq U_i, V_i \leq N
  • UiViU_i \neq V_i
  • iji \neq j,则 (Ui,Vi)(Uj,Vj)(U_i, V_i) \neq (U_j, V_j)
  • 所有输入均为整数。

样例解释 1

如果从顶点 22 出发,可以按照“顶点 22 \to 顶点 33 \to 顶点 44 \to 顶点 22 \to 顶点 33 \to \cdots”这样的路径无限次移动。从顶点 33、顶点 44 出发也同理。如果从顶点 11 出发,最初可以移动到顶点 22,之后也可以无限次移动。另一方面,从顶点 55 出发则无法移动。
因此,满足条件的顶点为顶点 11223344,共 44 个,所以输出 44

样例解释 2

请注意,在简单有向图中,两个顶点之间可以同时存在方向相反的两条边。此外,GG 不一定是连通图。

由 ChatGPT 4.1 翻译