#lg2881. [USACO07MAR] Ranking the Cows G

    ID: 1859 传统题 1000ms 128MiB 尝试: 3 已通过: 1 难度: 10 上传者: 标签>深度优先搜索 DFS拓扑排序bitsetFloyd 算法普及+/提高−

[USACO07MAR] Ranking the Cows G

P2881 [USACO07MAR] Ranking the Cows G

题目描述

FJ 想按照奶牛产奶的能力给她们排序。现在已知有 NN 头奶牛(1≤N≤1031\le N\le {10}^3)。FJ 通过比较,已经知道了 MM(1≤M≤1041 \le M \le {10}^4)对相对关系。每一对关系表示为 X Y,意指奶牛 XX 的产奶能力强于 YY。FJ 可以选择若干对奶牛同时询问它们的产奶量关系, 现在 FJ 想要知道,他至少还要知道多少对关系才能完成整个排序。

输入格式

第一行,两个正整数 NN 和 MM。

以下 MM 行,每行两个正整数 XX 和 YY,表示第 XX 只奶牛的产奶能力强于第 YY 只。

输出格式

只输出一行,一个非负整数,表示至少还需要知道的关系对数。特别地,如果 FJ 已经可以知道所有奶牛的产奶能力排序,输出0。

输入输出样例 #1

输入 #1

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

输出 #1

3

说明/提示

样例 解释

我们用 CiC_i 表示第 ii 头奶牛的产奶能力。

根据给出的 55 组关系,FJ 已经能知道 C2>C1>C5C_2 > C_1 > C_5 且 C2>C3>C4C_2 > C_3 > C_4,因此第 22 只奶牛的产奶能力最高。接着 FJ 需要知道 C1C_1 和 C3C_3 的大小关系才能知道哪只奶牛的产奶能力第二高。FJ 还需要知道 C4C_4 和 C5C_5 的大小关系和 C5C_5 和 C3C_3 的关系才能完全确定顺序。可以证明没有询问次数比 33 次更少的方案了。