U1000 「USACO 2015.01 Gold」Grass Cownoisseur

暂无评定 传统题 USACO2015Gold 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交0/0

U1000「USACO 2015.01 Gold」Grass Cownoisseur

暂无评定 传统题 USACO2015Gold 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交0/0

本题使用标准输入、标准输出,无需读写题面中提到的文件。

题目描述

为了更好地管理奶牛的放牧路线,农夫 John 在他的农场里修建了许多单向的牛道。农场由 NN 个草场组成,编号为 1..N1..N,每条单向牛道连接一对草场。例如,如果一条道路从草场 XX 通向草场 YY,那么奶牛可以从 XX 走到 YY,但不能从 YY 走到 XX。

众所周知,奶牛 Bessie 喜欢尽可能多地在不同草场吃草。她每天一开始总是在草场 11,走过一串草场,并在一天结束时回到草场 11。她试图最大化路线中经过的不同草场数量,因为每个草场她都能吃到草(如果多次到访同一草场,她只会吃一次)。

可以想象,Bessie 对这些道路的单向限制并不满意,因为这很可能会减少她每天路线中能访问到的不同草场数量。她想知道,如果她违反规则,在路线中最多沿着一条道路反方向行走一次,她最多能吃到多少草。请计算:在一条从草场 11 出发并回到草场 11 的路线中,允许最多有一条道路被反方向走过的情况下,Bessie 能访问到的不同草场的最大数量。Bessie 在整个旅程中最多只能反向行走一次;特别地,她甚至不能把同一条道路反向走两次。

输入格式

第一行输入包含 NN 和 MM,分别表示草场数量和单向道路数量(1 <= N, M <= 100,000)。

接下来 MM 行每行描述一条单向牛道。每行包含两个不同的草场编号 XX 和 YY,表示一条从 XX 到 YY 的牛道。同一条牛道不会出现多次。

输出格式

输出一行,表示在从草场 11 出发并回到草场 11 的路线中,且在该路线中最多允许一条道路按反方向行走的情况下,Bessie 能访问到的不同草场的最大数量。

7 10
1 2
3 1
2 5
2 4
3 7
3 5
3 6
6 5
7 2
4 7
6

提示

【解题说明】

下面是样例输入的 ASCII 图示:

v---3-->6 7 |\ | ^\ v \ | | \ 1 | | | v | v 5 4<--2---^

Bessie 可以按 1, 2, 4, 7, 2, 5, 3, 1 的顺序访问草场,方法是在 5 和 3 之间的道路上反向行走。当她到达 3 时,如果不再走另一条反向道路,她就无法到达 6。

来源

USACO|2015|Gold