9271 - 网络安全
时间限制 : 1 秒
内存限制 : 128 MB
小向正在设计一款网络安全应用程序,其中有许多功能模块需要连接。他已经确定了应用程序的模块结构,该安全应用程序由n个功能模块构成,这些功能模块通过m个程序接口连接(双向数据通信)。在某几个安全程序的接口处,有着敏感数据或者核心功能块,需要额外的安全功能块。小向希望你帮助他确定在哪些接口上添加额外的安全功能块。 安全功能块将被安装在接口s处开始,于接口t处结束。通过计算确定这些接口之后,小向将在s到t的每个接口中添加安全功能块,使得没有安全功能块的接口就无法从接口s到达接口t。小向希望尽可能多地保护关键接口,因此他请你帮助确定最多需要安装多少安全功能块,且任意的功能模块都可以选择作为s或者t 。
样例2的(如上图所示),s和t分别选1、4两个位置,这时路径经过的接口最多,故添加的安全安全功能块也是最多,为3个。
输入
第一行包含两个正整数n和m,分别表示功能模块的数量和接口的数量。 接下来的m行,每行包含两个正整数x和y(1 \leq x,y \leq n , x \not = y$),描述一个接口的两端功能模块编号。 保证不存在通过两个及以上连接相同功能模块的接口,且任意功能模块可从其他任何功能模块通过接口到达。
输出
输出一个正整数,表示在所有可能的s和t的选择情况下,能够安装的最多安全模块数量。
样例
输入
5 5 1 2 2 3 3 1 4 1 5 2
输出
2
输入
4 3 1 2 4 3 3 2
输出
3
提示
对于100%的数据: 2 \leq n \leq 3* \gdef\foo#1{#1^5} \foo{10}
1 \leq m \leq 3* \gdef\foo#1{#1^5} \foo{10}
来源
云南编程挑战赛