3730: 点集操作(第五轮04)

内存限制:257 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:4 解决:1

题目描述

清楚姐姐在学图论,她获得了一个有向无环图,她想知道对图做任意 次 modify(i,j) 操作之后的图中剩余的最小点数,其中  1 ≤ i,j ≤ n。

其中 modify(i,j)  为一次操作:

1. 任选两个点 i,j(i  ≠ j)

2. 称 Ai 为 i  能达到的所有点组成的点集,Aj 为 j  能达到的所有点组成的点集。 (注意:每个点可以到达的点集包含这个点本身)

3. 设 B  为一个最大的点集,满足 B  既是 Ai  的子集,又是Aj  的子集。

4. 将 B  在图中变成一个新点,B   内的所有边全部删除。点集 B   以外的点与点 集 B   以内的点的连边关系转移到新点上。

输入

第一行两个数 n, m。

接下来 m  行每行两个数表示一条有向边.

输出

一行一个数表示最小剩余点数。

样例输入 复制

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

样例输出 复制

3

提示

【数据范围】

对于  10%的数据, 1 ≤ n ≤ 10,1 ≤ m ≤ 20;

对于  30%的数据, 1 ≤ n ≤ 10^4 ,1 ≤ m ≤ 2 × 10^4 ;       

对于  100%的数据, 1 ≤ n ≤ 10^6, 1  ≤ m ≤ 2 × 10^6  。

来源/分类