AT_arc074_d.[ARC074F] Lotus Leaves

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

有一个长方形的池塘。池塘被分割为高 HH 行、宽 WW 列的网格。从上往下第 ii 行,从左往右第 jj 列的格子可以表示为 (i, j)(i,\, j)。

池塘中的某些格子上漂浮着莲叶。某只青蛙正站在编号为 SS 的叶子上,准备移动到另一个编号为 TT 的叶子。每个格子 (i, j)(i,\, j) 的信息由字符 aija_{ij} 表示:

  • . :该格子上没有莲叶。
  • o :该格子上有一片莲叶。
  • S :该格子上有编号为 SS 的莲叶。
  • T :该格子上有编号为 TT 的莲叶。

青蛙可以不断进行如下操作:“跳到当前所在叶子同一行或同一列上漂浮的另一个叶子上”。青蛙希望移动到叶 TT。

すぬけ君的目标是,提前移除若干(可以为零)片叶子(不能移除 SS 和 TT),使得青蛙无法从 SS 移动到 TT。请判断能否实现该目标。如果可以,请输出最少需要移除的叶子数量。如果不能实现,请输出 −1-1。

输入格式

输入为如下格式,从标准输入读入。

HH WW
a11a12...a1Wa_{11} a_{12} ... a_{1W}
⋮\vdots
aH1aH2...aHWa_{H1} a_{H2} ... a_{HW}

输出格式

如果目标可以实现,输出最少需要移除的叶子的数量。否则,请输出 −1-1。

输入输出样例

  • 输入#1

    3 3
    S.o
    .o.
    o.T

    输出#1

    2
  • 输入#2

    3 4
    S...
    .oo.
    ...T

    输出#2

    0
  • 输入#3

    4 3
    .S.
    .o.
    .o.
    .T.

    输出#3

    -1
  • 输入#4

    10 10
    .o...o..o.
    ....o.....
    ....oo.oo.
    ..oooo..o.
    ....oo....
    ..o..o....
    o..o....So
    o....T....
    ....o.....
    ........oo

    输出#4

    5

说明/提示

限制

  • 2≤H,W≤1002 \leq H, W \leq 100
  • aija_{ij} 只会是 ., o, S, T 之一。
  • 所有 aija_{ij} 中恰好有一个 S。
  • 所有 aija_{ij} 中恰好有一个 T。

样例解释 1

只需移除右上和左下的两片叶子即可。

由 ChatGPT 5 翻译

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

首页