#bzoj4290. 传送门

    ID: 4732 远端评测题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 5.12 上传者: 标签>搜索搜索与剪枝动态规划贪心bzoj

传送门

题目描述

在一个迷宫中有一个蛋糕。作为一个吃货,Luna\text{Luna}非常想吃到这块蛋糕。现在Luna\text{Luna}手里有这个迷宫的地图,该地图是一个rrcc列的网格图,每个格子包含了下述44种字符中的一种:

  • #表示这里是墙砖,不能通过;
  • .表示这里是空地,可以通过;
  • S表示Luna\text{Luna}的初始位置;
  • C表示蛋糕的位置。

Luna\text{Luna}只能在空地上行走,并且只能从一个格子走到与这个格子有公共边的相邻格子上。另外,整个地图的四周都是被墙砖所环绕的。

为了能更快吃到蛋糕,Luna\text{Luna}不知从哪里获得了一把次元枪,这把枪可以用来制造传送门。该枪的使用说明如下:

  1. 在任何时候,Luna\text{Luna}可以选择上下左右四个方向中的一个开一枪。当她向一个方向开枪之后,子弹会撞到这个方向上第一个遇到的墙砖,并在这个墙砖面向她的面上开启一个传送门。
  2. 由于能量限制,在同一时刻最多存在两个传送门。如果已经存在两个传送门,那么当Luna\text{Luna}再开枪时,其中一个传送门会被回收用于补充能量,回收哪一个由Luna\text{Luna}自己决定。当Luna\text{Luna}向某个传送门开枪时,会有一个新的传送门取代它,即在一块墙砖的一个面上同时只能存在一个传送门。
  3. 当存在两个传送门时,Luna\text{Luna}可以进入其中任意一个传送门,然后会从另外一个传送门走出。

由于Luna\text{Luna}枪法一流,所以开枪是不耗时的。Luna\text{Luna}从一个格子走到任意一个相邻格子的耗时为11,穿越传送门的耗时也为11

现在Luna\text{Luna}把地图给了你,她想知道她吃到蛋糕的最少耗时是多少,你不忍心拒绝这样一位少女的请求,所以你绞尽脑汁也要把这个问题解决。

输入格式

第一行两个整数r,cr,c

接下来rr行每行cc个字符,表示地图。SC均只会出现一次。

输出格式

第一行一个整数,表示最少耗时。

样例

4 4
.#.C
.#.#
....
S...
4

数据范围与约定

对于100%100\%的数据,1r,c10001\le r, c\le 1000Luna\text{Luna} 一定能吃到蛋糕。