寻宝游戏——高级

 1 Sec 64 MB |  显示标签
1236
通过提交

题目描述

你喜欢寻宝游戏吗?今天,小明就要和他的朋友展开一场冒险之旅。他们可能在路上找到许多黄金。
小明的朋友非常聪明,已经绘制出了一张寻宝地图,为了简单化,地图上只有三种标识:
• ‘.’ 表示他们可以通过的空地。
• ‘#’ 表示他们无法通过的区域。
• ‘*’ 表示在该地下,可以找到黄金。。。

令小明高兴的是,他的朋友对不属于他的东西没有任何兴趣,当然包括脚下
的黄金。。。那样所有的黄金就都可以属于小明了。。。
但是他的朋友也有一个要求,他在地图上设置了一系列集结点,取名为'A', 'B' ... 'Z', 'a', 'b' ... 'z'(它们是按照顺序的,并且最多不超过52个)他们从'A'出发。在任意时刻,小明的朋友都会选择一条最短的路,达下一个集结点休息。小明可以选择和他一样的路径,也可以选择其他的,但是,必须同时到达。小明对于宝藏的渴望,使得他浑身充满了力量,在到达下一个集结点前,可以在路上选择一个有黄金的地点,几乎不需时间就可以把它挖出来,当然这股力量不会积累,即每次休息过后至多只能挖出一个黄金。挖出黄金的地点自动变成‘.’,不可能再长出黄金来。
那么小明想要知道,在服从朋友的要求下,他最多能挖出多少个宝藏。

输入格式

第一行两个整数R和C。(2<=R,C<=100)表示地图的行和列数。
接下来R行,每行C个字符,表示地图的状态。仅包含‘A’ ? ‘Z’ or ‘a’ ? ‘z’ or ‘.’ or ‘#’ or ‘*’。

输出格式

一个整数,表示小明能获得的最多宝藏数,如果有一个集结点无法到达,则输出-1。

样例输入 #1

2 4
A.B.
***C



2 4
A#B.
***C

样例输出 #1

1


2


 上传者
coach
 创建时间
2012-11-13 12:22