AT_oidashi_a.不完全迷路

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

假如你在路旁捡到一个奇怪的迷宫生成器。 只要动一下它,就会自动生成很多纵长H,横长W的迷宫。 但是有时却会有缺陷,生成无法找到出口的迷宫。 所以,你需要修正这些迷宫,使它们能够找到出口。
对于迷宫,墙壁为#,路为...,起点为S,终点为G。玩家从起点开始移动,向相邻的长宽为4的非墙壁区域移动,到达终点。你需要从这里开始,将墙壁换成大小为1的道路,使其成为能够找到出口的迷宫。
但是,恰到好处的墙壁换成了路就没意思了。所以,你的修改必须使从起点到终点的最短路长变得最长。
请答出:经过了上述操作后,起点到终点的最短路长。

输入格式

第一行,输入迷宫的纵长HHH,横长W(2≤H,W≤298)W(2 ≤ H, W ≤ 298)W(2≤H,W≤298)。
第二行及以下的H行,每行W个字符的语句lineiline_ilinei​,每个linei(1≤i≤H)line_i(1 ≤ i ≤ H)linei​(1≤i≤H)都由#,.,S,G构成,墙壁为#,路为.,起点为S,终点为G。而且,一个迷宫中S,G都有且仅有一个。
请保证:输入的迷宫,从S无法到达G,必须有一个墙壁被换成了路,迷宫才能找到出口。

输出格式

输出修正后的迷宫起点到终点的最短路长。输出的末尾要换行。

输入输出样例

  • 输入#1

    6 8
    S..#...#
    ##...#..
    ..###.##
    ........
    .#######
    .......G

    输出#1

    28
  • 输入#2

    5 6
    #.S.#.
    ###...
    ...###
    .#.#.G
    .....#

    输出#2

    10
  • 输入#3

    4 6
    S.....
    ###.##
    ######
    .....G

    输出#3

    8
  • 输入#4

    6 8
    S.......
    ########
    ...#....
    .##..##.
    ...#.#..
    .#.G#..#

    输出#4

    12
  • 输入#5

    7 8
    .#......
    S#.#.###
    ...#.#.#
    ###.#.G.
    .....#..
    ..##.#.#
    ........

    输出#5

    14

输入解题思路,AI测评打分。不知道怎么写?

首页