AT_s8pc_6_i.Garden 2

通过率:0%

AC君温馨提醒

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

题目描述

时光回到2022年6月20日。AtCoder为庆祝公司成立十周年,在总部前建造了一个花园。
这个花园能用一个 HH 行 WW 列的网格表示,每一格的位置用 (i,j)(i, j) 表示,ii 为行号,jj 为列号。
每个格子中种着一朵花,花在位置 (i,j)(i, j) 的美丽度用 Ai,jA_{i, j} 表示。

例如,下图展示了一个花园,其中每个格子内的数字表示花的美丽度。

你的任务是砍掉一些花,让花园变得「美丽」。要称为「美丽的花园」,必须满足以下条件:

  • 任意两朵未被砍掉的花之间的路径唯一,且路径只能由上下左右相邻的未砍掉的花组成,并且不能经过相同的格子两次。
  • 上述条件对于所有未被砍掉的花对 (a,b)(a, b) 和 (c,d)(c, d) 均成立(当 (a,b)≠(c,d)(a, b) \neq (c, d))。

例如,以下是一个将花园变得美丽的砍伐方式:

而以下的砍伐方式不能获得「美丽的花园」:

「花园的得分」是所有未被砍掉的花的美丽度之和。如果花园不满足「美丽」条件,得分为 00。
例如,上图中的花园 AA 得分为 2020,花园 BB 得分为 6060,而花园 CC、DD、EE 得分均为 00。
请输出一种砍伐方案,使得花园得分尽可能高。

输入格式

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

HH WW A1,1A_{1, 1} A1,2A_{1, 2} A1,3A_{1, 3} … A1,WA_{1, W} A2,1A_{2, 1} A2,2A_{2, 2} A2,3A_{2, 3} … A2,WA_{2, W} A3,1A_{3, 1} A3,2A_{3, 2} A3,3A_{3, 3} … A3,WA_{3, W} … AH,1A_{H, 1} AH,2A_{H, 2} AH,3A_{H, 3} … AH,WA_{H, W}

输出格式

请输出 HH 行,每行表示花园的一个行:

c1,1c1,2c1,3…c1,Wc_{1, 1}c_{1, 2}c_{1, 3}…c_{1, W} c2,1c2,2c2,3…c2,Wc_{2, 1}c_{2, 2}c_{2, 3}…c_{2, W} c3,1c3,2c3,3…c3,Wc_{3, 1}c_{3, 2}c_{3, 3}…c_{3, W} … cH,1cH,2cH,3…cH,Wc_{H, 1}c_{H, 2}c_{H, 3}…c_{H, W}

其中,如果格子 (i,j)(i, j) 未被砍掉则用 # 表示,砍掉则用 . 表示。

输入输出样例

  • 输入#1

    3 3
    1 2 3
    4 5 6
    7 8 9

    输出#1

    #.#
    ###
    #.#
  • 输入#2

    4 5
    4 1 8 2 6
    2 2 1 2 5
    3 5 1 9 2
    5 1 2 3 6

    输出#2

    #.###
    #...#
    #####
    #.#.#

说明/提示

约束条件

  • H,WH, W 均为 11 到 500500 之间的整数
  • Ai,jA_{i, j} 为 11 到 99 之间的整数

测试数据生成方式

测试用例如下生成:

  • 每个测试用例的 H,WH, W 是固定的,具体可见子任务与得分部分。
  • Ai,jA_{i, j} 在 11 至 99 之间随机生成。

子任务与得分

总计有 1515 个测试用例,每个案例满分 100100 分,总分 15001500 分。具体计算方法如下。设「花园得分」为 LL,且 L′=L÷(H×W)L' = L \div (H \times W)。

(☆) 当 H=5,W=5H = 5, W = 5 (测试用例 1,2,31, 2, 3)或 H=5,W=500H = 5, W = 500(测试用例 4,5,64, 5, 6)时

  • 0.00≤L′<2.000.00 \leq L' < 2.00:00 分
  • 2.00≤L′<3.332.00 \leq L' < 3.33:0+(L−2.00)×210 + (L - 2.00) \times 21 分
  • 3.33≤L′<3.933.33 \leq L' < 3.93:28+(L−3.33)×4028 + (L - 3.33) \times 40 分
  • 3.93≤L′<4.033.93 \leq L' < 4.03:52+(L−3.93)×48052 + (L - 3.93) \times 480 分
  • 4.03≤L′4.03 \leq L':100100 分

(★) 当 H=500,W=500H = 500, W = 500(测试用例 77 到 1515)时

  • 0.00≤L′<2.000.00 \leq L' < 2.00:00 分
  • 2.00≤L′<3.332.00 \leq L' < 3.33:0+(L−2.00)×210 + (L - 2.00) \times 21 分
  • 3.33≤L′<3.783.33 \leq L' < 3.78:28+(L−3.33)×7528 + (L - 3.33) \times 75 分
  • 3.78≤L′<3.843.78 \leq L' < 3.84:61+(L−3.78)×65061 + (L - 3.78) \times 650 分
  • 3.84≤L′3.84 \leq L':100100 分

当 2.00≤L′′≤4.052.00 \leq L'' \leq 4.05 时,得分随 L′L' 的变化如下图所示:

注意事项

每当有得分为 00 的测试用例时,将判定为 WA。即使得到 WA,也有可能获得部分分数;同样,即使得到 AC,也不一定满分。

由于这是一个马拉松类型的题目,不能保证所有测试用例都能得到满分。即使是出题者提供的解法也未必能获得满分。
此外,如果发现多数提交超出满分标准,可能会对得分公式进行调整,这种情况的发生概率极小。请注意,比赛开始 3 小时后,得分公式将不会再更改。

样例解释 1

按照示例输出 1 的砍伐方式,花园的得分为 1+3+4+5+6+7+9=351 + 3 + 4 + 5 + 6 + 7 + 9 = 35 分。请注意,这个例子不在评分数据中。

样例解释 2

该输入示例对应于问题描述中的图片,而示例输出 2 对应于例子 B,花园得分为 6060。此时 L′L' 的值为 60÷20=3.0060 \div 20 = 3.00。顺便一提,也有使得花园得分达到 6262 的方案,但此题并不要求必须输出最大得分。请注意,这个例子也不在评分数据中。

本翻译由 AI 自动生成

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

首页