#P2258. The Settlers of Catan

The Settlers of Catan

描述

在1995年德国年度游戏《卡坦岛》中,玩家们试图通过建造道路、定居点和城市来征服一片未知的荒野。

你受雇于一家软件公司,该公司决定开发这款游戏的电脑版本,而你被选中实现其中一条特殊规则:

当游戏结束时,建造了最长道路的玩家将获得额外的两分胜利点数。

这里的问题在于,玩家通常会构建复杂的道路网络,而不仅仅是一条线性路径。因此,确定最长道路并非易事(尽管人类玩家通常一眼就能看出来)。

与原始游戏相比,我们将在此解决一个简化的问题:给定一组节点(城市)和一组连接这些节点的边(道路段,长度为11)。

最长道路的定义是网络中不重复使用任何一条边的最长路径。节点可以多次访问。

示例:以下网络包含一条长度为1212的道路。

o      o--o      o  
 \    /    \    /  
  o--o      o--o  
 /    \    /    \  
o      o--o      o--o  
           \    /  
            o--o  

输入

输入包含一个或多个测试用例。

每个测试用例的第一行包含两个整数:节点数nn2n252 \leq n \leq 25)和边数mm1m251 \leq m \leq 25)。接下来的mm行描述mm条边。每条边由连接的两个节点的编号给出。节点编号从00n1n-1。边是无向的。节点的度数不超过33。网络不一定是连通的。

输入以nnmm均为00时终止。

输出

对于每个测试用例,输出最长道路的长度,占一行。

输入样例 1

3 2
0 1
1 2
15 16
0 2
1 2
2 3
3 4
3 5
4 6
5 7
6 8
7 8
7 9
8 10
9 11
10 12
11 12
10 13
12 14
0 0

输出样例 1

2
12

来源
乌尔姆本地赛 1998