#CF3717. 删除有向边
删除有向边
题目描述
你有一个由 个顶点和 条边组成的有向无环图,顶点从 到 编号,没有重边和自环。
令 为顶点 的入度(指向v的边的数量), 为顶点 的出度(从 出发的边的数量)。
你需要从图中移除一些边。令新的入度和出度为 和 。
删除一定数量的边后,每个顶点 都满足以下条件:
- 或者 ;
- 或者 。
如果对于集合 中的每对顶点 和 ,在未被移除的边上存在一条从 到 或从 到 的路径,则将其称为 cute
集合。
从图中删除一些边,这样所有顶点的入度和出度要么减少,要么保持为 0
,在此条件下,cute
集合 的最大可能大小是多少?
说直白点,就是:
- 每个点至少删除一条出边,除非他没有出边;
- 每个点至少删除一条入边,除非他没有入边;
求经过上述删除之后,最大的单连通子集。
输入格式
给定一个有向无环图,包含 个节点和 条边。
第一行包含两个整数 和 ——图的顶点数和边数。
接下来的 行,每行包含两个整数 和 ,表示一个边的描述。
给定的边构成一个有效的有向无环图。没有多重边。
输出格式
输出一个整数,表示在从图中删除某些边并且所有顶点的入度和出度要么减少要么保持为 的情况下,cute
集合 的最大可能大小。
测试样例
3 3
1 2
2 3
1 3
2
5 0
1
7 8
7 1
1 3
6 2
2 3
7 2
2 4
7 3
6 3
3
样例说明
在第一个例子中,。您可以删除边 和 。 。您可以看到对于所有的 条件都成立。最大的 cute
集 由顶点 1
和 3
组成。它们仍然通过一条边直接连接,因此它们之间有一条路径。
在第二个例子中,没有边。由于所有的 和 都等于 0
,因此允许保留边数为零的图。有 个 cute
集合,每个都包含一个单独的顶点。因此,最大大小为 。
在第三个例子中,您可以删除边 和 。最大的 cute
集将是 。您也可以删除边 ,答案不会改变。
以下是第三个例子的图像:
提示
本题可以先考虑:如果不需要删除边可以怎么做。