UVA10944 Nuts for nuts..
题目背景
最后,Ryan 和 Larry 觉得这些东西不是很好吃……然后他们在岛上发现了很多坚果!但由于他们很懒惰,所以他们想知道最少需要走多少距离才能吃到所有坚果。
为了帮他们强身健体,帮帮他们吧……

题目描述
给定一张大小为 $X$ 行 $Y$ 列的字符地图,其中 `L` 表示 Larry 的起点,`.` 表示空地,`#` 表示坚果。
Larry 既可以横着走,也可以**斜着走**。也就是说,两个格子之间的距离是**切比雪夫距离**而不是曼哈顿距离。
你的任务是帮助 Larry 求出拾取所有坚果,并且最多经过每个坚果一次,最后返回起点 `L` 的最短路径的长度。
**多组数据。** 保证每张地图最多只有 $15$ 处有坚果,且起点有且只有一处。地图的长度与宽度均不超过 $20$。
**请注意,部分数据里没有坚果。**
输入格式
多组数据。对于每组数据,第一行两个正整数 $X$ 和 $Y$,表示字符地图的行数和列数。
接下来 $X$ 行,每行一个长为 $Y$ 的字符串,表示 $X$ 行 $Y$ 列的的字符地图。
数据以 EOF(文件终止符)结尾。
输出格式
对于每组数据,输出一行一个整数表示答案。
说明/提示
原 PDF 里没有提到数据以 EOF(文件终止符)结尾。但是译者测试了 `while(scanf("%d %d",&X,&Y)!=EOF)solve();` 是可以通过此题的。在此说明。
~~为什么 UVa 都这么喜欢多测?~~