AT_abc440_g.[ABC440G] Haunted House

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

万圣节季已经到来。为了考验胆量,你即将挑战一间鬼屋。

鬼屋共有 FF 层楼,每层楼由一个 HH 行 WW 列的网格表示。记单元格 (k,i,j)(k,i,j) 为第 kk 层网格中,从上数第 ii 行、从左数第 jj 列的单元格。

单元格 (k,i,j)(k,i,j) 的内容由字符 Sk,i,jS_{k,i,j} 定义,规则如下:

  • 若 Sk,i,jS_{k,i,j} 为数字(0 - 9),则该单元格为空白单元格,内含的硬币数量等于该数字对应的一位整数。
  • 若 Sk,i,jS_{k,i,j} 为 #,则该单元格为墙壁单元格。

你可以从空白单元格 (k,i,j)(k,i,j) 直接移动到另一个空白单元格 (k′,i′,j′)(k', i', j'),当且仅当后者是空白单元格且满足以下条件之一:

  • k′=kk' = k 且 ∣i′−i∣+∣j′−j∣=1|i' - i| + |j' - j| = 1(同层上下左右相邻);
  • (k′,i′,j′)=(k+1,i,j)(k', i', j') = (k+1, i, j)(移动到上一层同位置);
  • (k′,i′,j′)=(k−1,i,j)(k', i', j') = (k-1, i, j),且单元格 (k,i,j)(k,i,j) 处放置了梯子(仅可从有梯子的位置向下移动到下一层同位置)。

你不能移动到网格外。

给定 QQ 次询问,请回答每一次询问。第 ii 次询问(1≤i≤Q1 \leq i \leq Q)要求如下:

  • 选择恰好一个空白单元格放置梯子,从单元格 (Gi,Ai,Bi)(G_i, A_i, B_i) 出发并持续移动,求能收集到的单元格中硬币总数的最大值。

每次询问相互独立。即,为某次询问放置的梯子不会影响其他询问。

输入格式

输入以标准输入的形式给出,格式如下:

$ F \ \ H \ \ W $
$ S_{1,1,1}S_{1,1,2}\cdots S_{1,1,W} $
$ S_{1,2,1}S_{1,2,2}\cdots S_{1,2,W} $
$ \vdots $
$ S_{1,H,1}S_{1,H,2}\cdots S_{1,H,W} $
$ S_{2,1,1}S_{2,1,2}\cdots S_{2,1,W} $
$ S_{2,2,1}S_{2,2,2}\cdots S_{2,2,W} $
$ \vdots $
$ S_{2,H,1}S_{2,H,2}\cdots S_{2,H,W} $
$ \vdots $
$ S_{F,1,1}S_{F,1,2}\cdots S_{F,1,W} $
$ S_{F,2,1}S_{F,2,2}\cdots S_{F,2,W} $
$ \vdots $
$ S_{F,H,1}S_{F,H,2}\cdots S_{F,H,W} $
$ Q $
$ G_1 \ \ A_1 \ \ B_1 $
$ G_2 \ \ A_2 \ \ B_2 $
$ \vdots $
$ G_Q \ \ A_Q \ \ B_Q $

输出格式

输出 QQ 行,第 ii 行输出第 ii 次询问的答案。

输入输出样例

  • 输入#1

    3 5 6
    ######
    ##5###
    #1#11#
    #1#11#
    ######
    ######
    ##313#
    #4##1#
    #242##
    ######
    ######
    #0####
    ##4###
    ###99#
    ######
    3
    1 2 3
    2 3 2
    3 2 2

    输出#1

    47
    34
    0
  • 输入#2

    3 6 30
    31#990#7###71298#6#9####3##04#
    ###66###6######7#4#3#1079239#6
    891###8#73#7#5838#589#225#1282
    #####5#306#9#38#50##6#71##8658
    6#68#4#5###30###3#5716987#####
    06#8####3#####134#5##2##28#169
    #5#11####0#75#8######28#6#904#
    85#71####0##9#7#0##8#2##00####
    #1#09#3772#838#67#6##261###0#4
    #4##78###7#########9#9#488##08
    43#1##4632##46714436##849#77#6
    8#83#61##4#14476#9#1##72#3####
    5#99####52##6#9####9#4#4132#3#
    ##910#27529#69##491###0#06#9##
    0#60845#02##28##610#2####25#6#
    #229156374##47#30907#60#####28
    #0#810#54###21##1#3###8#5917##
    ###6#56#60##04#73###6255###2##
    10
    3 4 23
    3 2 4
    1 4 14
    2 3 12
    1 1 16
    1 2 9
    3 5 6
    1 3 19
    2 2 4
    3 4 9

    输出#2

    136
    217
    474
    255
    474
    285
    217
    451
    251
    217

说明/提示

样例解释 1

对于第一次询问,在单元格 (2,3,5)(2,3,5) 放置梯子并按以下方式移动,可收集到的硬币总数为 4747:

  1. 从第一层的单元格 (1,2,3)(1,2,3) 出发;
  2. 向上移动到第二层,按顺序移动:(2,2,3)→(2,2,4)→(2,2,5)→(2,3,5)(2,2,3) \to (2,2,4) \to (2,2,5) \to (2,3,5);
  3. 向下移动到第一层,按顺序移动:(1,3,5)→(1,4,5)→(1,4,4)→(1,3,4)→(1,4,4)(1,3,5) \to (1,4,5) \to (1,4,4) \to (1,3,4) \to (1,4,4);
  4. 向上移动到第二层,按顺序移动:(2,4,4)→(2,4,3)→(2,4,2)→(2,3,2)→(2,4,2)→(2,4,3)→(2,4,4)(2,4,4) \to (2,4,3) \to (2,4,2) \to (2,3,2) \to (2,4,2) \to (2,4,3) \to (2,4,4);
  5. 向上移动到第三层,按顺序移动:(3,4,4)→(3,4,5)(3,4,4) \to (3,4,5)。

对于第二次询问,在单元格 (2,4,4)(2,4,4) 放置梯子,按照以下步骤移动,你收集到的经过单元格的硬币总数可以达到 3434:

  1. 在第二层按顺序移动:(2,3,2)→(2,4,2)→(2,4,3)→(2,4,4)(2,3,2) \to (2,4,2) \to (2,4,3) \to (2,4,4);
  2. 向下移动到第一层,再按顺序移动:(1,4,4)→(1,4,5)→(1,3,5)→(1,3,4)→(1,4,4)(1,4,4) \to (1,4,5) \to (1,3,5) \to (1,3,4) \to (1,4,4);
  3. 向上移动回到第二层,到达单元格 (2,4,4)(2,4,4);
  4. 向上移动到第三层,再按顺序移动:(3,4,4)→(3,4,5)(3,4,4) \to (3,4,5)。

对于第三次询问,无论你将梯子放置在哪个单元格,都无法从起点单元格 (3,2,2)(3,2,2) 移动到其他位置。

数据范围

  • F,H,WF,H,W 为整数;
  • 1≤F≤101 \leq F \leq 10;
  • 1≤H,W≤5001 \leq H,W \leq 500;
  • Sk,i,jS_{k,i,j} 为数字(0-9)或 #(1≤k≤F,1≤i≤H,1≤j≤W1 \leq k \leq F, 1 \leq i \leq H, 1 \leq j \leq W);
  • QQ 为整数;
  • 1≤Q≤1051 \leq Q \leq 10^5;
  • Gi,Ai,BiG_i, A_i, B_i 为整数(1≤i≤Q1 \leq i \leq Q);
  • 1≤Gi≤F1 \leq G_i \leq F(1≤i≤Q1 \leq i \leq Q);
  • 1≤Ai≤H1 \leq A_i \leq H(1≤i≤Q1 \leq i \leq Q);
  • 1≤Bi≤W1 \leq B_i \leq W(1≤i≤Q1 \leq i \leq Q);
  • SGi,Ai,BiS_{G_i, A_i, B_i} 不为 #(1≤i≤Q1 \leq i \leq Q)。

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

首页