#CSES1699. 航班路线请求

航班路线请求

题目背景

翻译自 CSES-1699 题。

题目描述

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

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

输入格式

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

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

输出格式

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

样例

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

样例1解释

你可以建立如下的航班连接:

  • 1→21 \to 2
  • 2→32 \to 3
  • 2→42 \to 4
  • 3→13 \to 1

这样就可以满足从城市 3 到城市 4 的要求,路径是:3→1→2→43 \to 1 \to 2 \to 4。

说明/提示

1≤n≤1051 \leq n \leq 10^5;

1≤m≤2×1051 \leq m \leq 2 \times 10^5;

1≤a,b≤n1 \leq a, b \leq n。