P4244 [SHOI2008] 仙人掌图 II

题目背景

题目这个II是和[SHOI2006的仙人掌图](https://www.luogu.org/problemnew/show/P4129)区分的,bzoj没有。 **但是实际上还是和bzoj1023是一个题目的**。

题目描述

如果某个无向连通图的任意一条边至多只出现在一条简单回路(simple cycle)里,我们就称这张图为仙人掌图(cactus)。所谓简单回路就是指在图上不重复经过任何一个顶点的回路。 ![](https://cdn.luogu.com.cn/upload/pic/13241.png) 举例来说,上面的第一个例子是一张仙人图,而第二个不是——注意到它有三条简单回路:(4,3,2,1,6,5,4)、(7,8,9,10,2,3,7)以及(4,3,7,8,9,10,2,1,6,5,4),而(2,3)同时出现在前两个的简单回路里。另外,第三张图也不是仙人图,因为它并不是连通图。显然,仙人图上的每条边,或者是这张仙人图的桥(bridge),或者在且仅在一个简单回路里,两者必居其一。定义在图上两点之间的距离为这两点之间最短路径的距离。定义一个图的直径为这张图相距最远的两个点的距离。**现在我们假定仙人图的每条边的权值都是1,你的任务是求出给定的仙人图的直径**。

输入格式

输出格式

说明/提示

对第一个样例的说明:6号点和12号点的最短路径长度为8,所以这张图的直径为8。 【注意】使用Pascal语言的选手请注意:你的程序在处理大数据的时候可能会出现栈溢出。 如果需要调整栈空间的大小,可以在程序的开头填加一句:{\$M 5000000},其中5000000即指代栈空间的大小,请根据自己的程序选择适当的数值。