AT_abc431_e.[ABC431E] Reflection on Grid

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个有 HH 行 WW 列的网格。我们将第 ii 行第 jj 列的格子称为 (i,j)(i, j)。每个格子上至多放有一面镜子。

高桥站在 (1,1)(1,1) 格子的左侧,青木站在 (H,W)(H,W) 格子的右侧。高桥手持手电筒,从 (1,1)(1,1) 格子的左侧向右照射光线。这里认为手电筒的光不会发散,是一条直线光。

高桥的目标是通过利用网格中的镜子将手电筒的光传递给青木。

镜子的放置有三种类型。当光线照射到镜子时,光线会根据镜子的类型改变方向。每种镜子,对于不同的入射方向,其出射方向如下图所示。

  • A型(未放置镜子)

  • B型(镜子放置在左上与右下的对角线上)

  • C型(镜子放置在右上与左下的对角线上)

网格上的镜子放置情况由 HH 个长度为 WW 的字符串 S1,S2,…,SHS_1,S_2,\ldots,S_H 给出。当 SiS_i 的第 jj 个字符为 A 时,表示 (i,j)(i,j) 格子为A型;为 B 时为B型;为 C 时为C型。

高桥可以进行如下操作任意次以将光线传递给青木:

  • 选择一个格子,并将该格子的镜子类型更换为不同的类型。

请你求出将光线传递给青木至少需要多少次操作。

共有 TT 组测试数据,请分别求解每组的答案。

输入格式

输入由标准输入给出,格式如下:

TT case1\mathrm{case}_1 case2\mathrm{case}_2 ⋮\vdots caseT\mathrm{case}_T

每组测试数据格式如下:

HH WW
S1S_1
S2S_2
⋮\vdots
SHS_H

输出格式

输出 TT 行,第 ii 行输出第 ii 组测试数据的答案。

输入输出样例

  • 输入#1

    4
    3 4
    ABCB
    CACC
    BCBA
    2 2
    CB
    AA
    1 10
    BCBCBCBCBC
    10 10
    CCAABACAAA
    CCCBACACCA
    BACAABCBBA
    ACCCAACCCA
    CCAAAACCBA
    AACBBACCAA
    BCCCACBBAB
    CBBCAACCCC
    CBBCCBCBCA
    BBACABBACC

    输出#1

    0
    2
    10
    5

说明/提示

样例解释 1

对于第一组数据,不需要进行任何操作即可将光线传递给青木。

对于第二组数据,通过将 (1,1)(1,1) 处的镜子类型更换为A型、(2,2)(2,2) 处的镜子类型更换为B型,可以如图所示地将光线传递给青木。无法通过一步或更少的操作实现目标,因此答案为 22。

数据范围

  • 1≤T1\leq T
  • 1≤H,W1\leq H,W
  • HW≤2×105HW\leq 2\times 10^5
  • SiS_i 为仅由A、B、C组成的长度为 WW 的字符串。
  • TT、 HH 、WW 均为整数。
  • 所有测试数据中 HWHW 之和不超过 2×1052\times 10^5。

由 ChatGPT 5 翻译

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

首页