#dpg. [dp_g]Longest Path

[dp_g]Longest Path

题目描述

给定一个有 NN 个顶点和 MM 条边的有向图 GG。顶点编号为 1,2,,N1, 2, \ldots, N,对于每个 ii (1iM1 \leq i \leq M),第 ii 条有向边从顶点 xix_i 指向顶点 yiy_i。图 GG 不包含有向环

找到 GG 中最长的有向路径的长度。这里,有向路径的长度指的是路径中边的数量。

约束条件

  • 输入中的所有值均为整数。
  • 2N1052 \leq N \leq 10^5
  • 1M1051 \leq M \leq 10^5
  • 1xi,yiN1 \leq x_i, y_i \leq N
  • 所有的 (xi,yi)(x_i, y_i) 对都是不同的。
  • GG 不包含有向环

输入

输入将从标准输入读取,并具有以下格式:

NN MM x1x_1 y1y_1 x2x_2 y2y_2 \ldots xMx_M yMy_M

输出

打印 GG 中最长的有向路径的长度。


示例输入1

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

示例输出1

3

下图中的红色有向路径是最长的:


示例输入2

6 3
2 3
4 5
5 6

示例输出2

2

下图中的红色有向路径是最长的:


示例输入3

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

示例输出3

3

下图中的红色有向路径是最长之一: