AT_s8pc_3_b 石落としゲーム

题目描述

square1001 为了加入计算机社团参加了一场考试。 这场考试的内容如下: - 给定一个 $H \times W$ 的棋盘。 - 棋盘上的每个格子上都写有 $1 \sim 9$ 的数字。第 1 行在最上面。 - 你可以选择消除棋盘上的任意一个格子。被消除格子上方的格子会下落补位。 此外,游戏按照以下步骤进行: - 1:如果有 $K$ 个或以上水平相邻的格子上写有相同的数字,这些格子会被同时消除。 - 2:被消除的格子上方如果有石头,则会下落填补空位。 - 3:所有石头下落完成后,如果又出现满足消除条件的石头群,则回到步骤 1 继续进行。 - 4:得分为 $2^i \times \left($第 $i$ 次消除时被消除数字的总和$\right)$ 的总和。注意,第一次消除为第 0 次。 现在,为了帮助 square1001 最优地通过考试,请你计算在最优选择一个格子消除的情况下,最多能获得多少分。

输入格式

输入按以下格式从标准输入给出: $H\ W\ K$ $c_{1,1}\ c_{1,2}\ \cdots\ c_{1,W}$ $c_{2,1}\ c_{2,2}\ \cdots\ c_{2,W}$ $\vdots\ \vdots\ \vdots$ $c_{H,1}\ c_{H,2}\ \cdots\ c_{H,W}$ - 第 1 行给出棋盘的行数 $H$、列数 $W$ 以及消除所需的最小横向相同数字个数 $K$。 - 接下来 $H$ 行,每行 $W$ 个数字,表示棋盘的状态。 - `1`~`9` 表示对应的数字。

输出格式

请输出最大得分,输出一行。

说明/提示

### 约束条件 - $2 \leq H, W \leq 30$ - 得分不会超过 $1,000,000,000$ - 初始棋盘上,任意横向相邻的格子都不会有相同的数字。 ### 小任务 小任务 1 [$120$ 分] - $H, W \leq 10$ - $W = K$ 小任务 2 [$180$ 分] - 无其他额外约束。 ### 样例解释 1 如果消除位置 $(4, 3)$,棋盘会变为如下所示: ![](https://atcoder.jp/img/s8pc-3/f10e83a7d963f43415eb9afec2192501.png) 因此,得分为 $7+16=23$。 消除 $(4,3)$ 是最优选择。 ### 样例解释 2 该输入样例不满足小任务 1 的约束。 ### 样例解释 3 该输入样例不满足小任务 1 的约束。 ### 样例解释 4 连锁消除次数可能会非常多。 由 ChatGPT 4.1 翻译