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 。