AT_abc337_d.[ABC337D] Cheating Gomoku Narabe

普及-

通过率:0%

AC君温馨提醒

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

题目描述

有一个 HH 行 WW 列的网格。自上而下的第 ii 行,自左而右的第 jj 列的格子称为格子 (i,j)(i, j)。

每个格子上写有 o、x 或 . 中的某一个字符。每个格子上的字符由 HH 个长度为 WW 的字符串 S1,S2,…,SHS_1, S_2, \ldots, S_H 表示,格子 (i,j)(i, j) 上的字符与字符串 SiS_i 的第 jj 个字符相同。

对于这个网格,你可以重复进行如下操作任意次(包括 00 次):

  • 选择一个写有 . 的格子,将其字符改为 o。

请判断是否有可能通过若干次上述操作,使得存在纵向或横向连续的 KK 个格子,这些格子上的字符全为 o(即,满足以下两个条件中至少一个):

  • 存在整数对 (i,j)(i, j),满足 1≤i≤H1 \leq i \leq H 且 1≤j≤W−K+11 \leq j \leq W-K+1,使得格子 (i,j),(i,j+1),…,(i,j+K−1)(i, j), (i, j+1), \ldots, (i, j+K-1) 上的字符全为 o。
  • 存在整数对 (i,j)(i, j),满足 1≤i≤H−K+11 \leq i \leq H-K+1 且 1≤j≤W1 \leq j \leq W,使得格子 (i,j),(i+1,j),…,(i+K−1,j)(i, j), (i+1, j), \ldots, (i+K-1, j) 上的字符全为 o。

如果可能,请输出所需操作次数的最小值。

输入格式

输入按以下格式从标准输入读入。

HH WW KK
S1S_1
S2S_2
⋮\vdots
SHS_H

输出格式

如果无法满足题目中的条件,输出 -1;如果可以,输出所需操作次数的最小值。

输入输出样例

  • 输入#1

    3 4 3
    xo.x
    ..o.
    xx.o

    输出#1

    2
  • 输入#2

    4 2 3
    .o
    .o
    .o
    .o

    输出#2

    0
  • 输入#3

    3 3 3
    x..
    ..x
    .x.

    输出#3

    -1
  • 输入#4

    10 12 6
    ......xo.o..
    x...x.....o.
    x...........
    ..o...x.....
    .....oo.....
    o.........x.
    ox.oox.xx..x
    ....o...oox.
    ..o.....x.x.
    ...o........

    输出#4

    3

说明/提示

限制条件

  • H,W,KH, W, K 均为整数。
  • 1≤H1 \leq H
  • 1≤W1 \leq W
  • H×W≤2×105H \times W \leq 2 \times 10^5
  • 1≤K≤max⁡{H,W}1 \leq K \leq \max\lbrace H, W \rbrace
  • SiS_i 仅由 o、x、. 组成,且长度为 WW。

样例解释 1

进行 22 次操作,例如将格子 (2,1)(2, 1) 和格子 (2,2)(2, 2) 上的字符分别改为 o,即可满足题目中的条件,这也是最小的操作次数。

样例解释 2

即使一次操作也不进行,也能满足题目中的条件。

样例解释 3

无法满足题目中的条件,因此输出 -1。

由 ChatGPT 4.1 翻译

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

首页