#CSES1699. 航班路线请求

航班路线请求

题目背景

翻译自 CSES-1699 题。

题目描述

nn 个城市,每个城市都有一个机场,但目前没有航班连接。你将获得 mm 个请求,要求在这些城市之间建立航线。

你的任务是确定最少需要多少个单向航班连接,才能满足所有的请求。

输入格式

第一行包含两个整数 nnmm,分别表示城市的数量和请求的数量。城市编号为 1,2,,n1,2,\ldots,n

接下来的 mm 行,每行包含两个整数 aabb,表示必须存在一条从城市 aa 到城市 bb 的航线。每个请求都是唯一的。

输出格式

输出一个整数,表示满足所有请求所需的最少航班连接数。

样例

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

样例解释

可以建立如下航班连接:

  • 121 \to 2
  • 232 \to 3
  • 242 \to 4
  • 313 \to 1

这样就可以满足从城市 33 到城市 44 的要求,路径为 31243 \to 1 \to 2 \to 4

数据范围与提示

  • 1n1051 \le n \le 10^5
  • 1m2×1051 \le m \le 2 \times 10^5
  • 1a,bn1 \le a,b \le n