编程题
### 问题描述
“漩涡!竞速?冲浪啦!”是一个特殊的冲浪挑战。你需要从一个起点冲浪到终点,每次你可以选择向上下左右四个方向移动,途中会遇到漩涡和加速带。漩涡会暂时降低你的速度,而加速带可以帮助你暂时提速。你的目标是用最短的时间到达终点。
地图上的每一个格子都有一个进入所需时间,普通水域为 $1$,漩涡为 $5$,加速带为 $0.5$。你需要找到耗时最短的路径。
### 输入格式
第一行包含两个整数,$n$ 和 $m$,表示地图的大小,为 $n \times m$ 的矩阵。
接下来的n行,每行 $m$ 个字符,描述了地图。其中:
- `S` 表示起点(是普通水域且唯一)。
- `E` 表示终点(是普通水域且唯一)。
- `.` 表示普通水域。
- `V` 表示漩涡。
- `A` 表示加速带。
### 输出格式
输出保留两位小数,表示从起点到终点的最短移动时间。
### 样例输入
```
5 5
S....
.A...
..V..
...A.
....E
```
### 样例输出
```
7.00
```
### 样例说明
从起点开始,直接向下时间为 $1$,向右进入加速带时间为 $0.5$,再向右两次时间为 $2$,再向下两次进入加速带时间为 $1.5$,然后再向下和向右达到终点时间为 $2$。总共时间花费为:$1 + 0.5 + 1 + 1 + 1 + 0.5 + 1 + 1 = 7.00$。
### 测评数据规模
对于 $40$% 的数据,$n, m \le 10$。
对于 $80$% 的数据,$n, m \le 50$。
对于 $100$% 的数据,$n, m \le 100$。