AT_past202309_k.マス目

通过率:0%

AC君温馨提醒

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

题目描述

给定一个 N×NN \times N 的方格。用 (i,j)(i,j) 表示第 ii 行(自上往下)第 jj 列(自左往右)的方格。

每个方格有如下四种状态之一:起点、目标、通道和坑洞。第 (i,j)(i,j) 个方格的状态用 Si,jS_{i,j} 表示。

  • S 表示该方格是起点。恰好有一个起点。
  • G 表示该方格是目标。至少有一个目标点。
  • . 表示该方格是通道。
  • X 表示该方格是坑洞。

请对于 k=1,2,…,N−1k=1,2,\dots,N-1 解决如下问题。

你最初位于起点。然后,你可以重复进行如下操作:

  • 选择一个方向(上、下、左、右),连续移动 kk 格到该方向。

你在执行该操作时,不能经过坑洞方格,也不能移动出网格之外。

问你是否能在某次操作结束时恰好位于目标方格上,如果可以,输出所需的最少操作次数,否则输出 −1-1。

注意,中间经过目标方格但不是操作结束时不计为到达目标。

输入格式

输入从标准输入读入,格式如下:

NN
S1S_1
S2S_2
⋮\vdots
SNS_N

输出格式

输出 N−1N-1 行。

对于 1≤i≤N−11 \le i \le N-1,第 ii 行输出 k=ik=i 时到达目标方格所需的最小操作数,如果无法到达则输出 −1-1。

输入输出样例

  • 输入#1

    5
    SX...
    .....
    ..GX.
    ..XG.
    X.X.G

    输出#1

    4
    2
    -1
    -1
  • 输入#2

    2
    GX
    XS

    输出#2

    -1

说明/提示

样例解释 1

对于 k=2k=2,你可以通过两步操作,到达目标。

  • 往下移动,从 (1,1)(1,1) 到 (3,1)(3,1)。
  • 往右移动,从 (3,1)(3,1) 到 (3,3)(3,3)。

只进行一次移动,不能到达目标,所以答案是 22。

注意,对于 k=3k=3,如下移动方式不可行:

  • 往右移动,从 (1,1)(1,1) 到 (1,4)(1,4)。

由于此移动路径会经过 (1,2)(1,2),而这里是坑洞,所以该操作不允许。

数据范围

  • 1≤N≤15001 \le N \le 1500
  • Si,jS_{i,j} 为 S、G、. 或 X
  • 恰好有一个 (i,j)(i,j) 使得 Si,j=SS_{i,j}=S
  • 至少有一个 (i,j)(i,j) 使得 Si,j=GS_{i,j}=G
  • NN 为整数。

由 ChatGPT 5 翻译

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

首页