#bzoj3887. Grass Cownoisseur
Grass Cownoisseur
题目描述
为了更好地管理奶牛的放牧路线,农夫约翰在他的农场里铺设了单向的牛径。农场由个编号为到的田地组成,每条单向牛径连接两块田地。例如,若一条牛径从田地连向田地,则奶牛可从前往但不可反向通行。众所周知,贝茜这头奶牛最爱尽可能多地啃食不同田地的青草。她每天早晨总从号田地出发,沿着一系列田地游走,傍晚时分再返回号田地。她始终力求使行程途经的田地数量最大化,因为每到一处田地就能享用那里的青草(即便多次到访,草料也只吃一次)。不出所料,贝茜对单向限制的路径感到非常不满,因为这很可能会减少她日常路线中能造访的独立牧场数量。她想知道如果违反规定、逆向通行一条路径,最多能吃多少草料。请计算从牧场出发并最终返回牧场1的路线中,她最多能造访多少独立牧场,要求路线中最多仅允许逆向通行一条路径。贝茜的旅程中最多只能逆行一次,甚至不能重复逆向通行同一条路径。
题目解释
给一个有向图,然后选一条路径起点终点都为1的路径出来,有一次机会可以沿某条边逆方向走,问最多有多少个点可以被经过?(一个点在路径中无论出现多少正整数次对答案的贡献均为)
输入格式
第一行输入包含和,给出字段数和单向路径数。以下行分别描述了一条单向奶牛路径。每行包含两个不同的字段编号和,对应于从到的奶牛路径。同一奶牛路径不会出现多次。
输出格式
一行表示贝茜在从字段开始和结束的路线上可以访问的最大不同字段数,前提是她最多只能沿着这条路线在错误的方向上走一条路。
样例
7 10
1 2
3 1
2 5
2 4
3 7
3 5
3 6
6 5
7 2
4 7
6
数据规模与约定
对于的数据:.