#P15427. [ICPC 2026 APC] Minesweeper String
[ICPC 2026 APC] Minesweeper String
题目描述
给定一个由数字 到 组成的字符串 ,长度为 。你需要用这个字符串生成一个变种的扫雷游戏。在这个变种中,一个格子可以包含多个地雷,并且每个格子的地雷数是基于其“4 邻域”(与其边相邻的格子),而不是传统的 8 邻域。
具体过程如下:
你选择一个整数 ()作为网格的宽度。将 个格子(编号 到 )按顺序排列成网格。网格共有 行(从上到下编号为 到 ),和 列(从左到右编号为 到 )。对于每个 ,编号为 的格子位于第 行、第 列,并对应 的第 位数字。因此,第 行包含格子 到 ,第 行包含格子 到 ,以此类推。注意,最底下一行可能不足 个格子。
将格子排列好后,进行如下两步:
- 对于对应于非零数字 ( 到 )的格子,在该格子中放入 个地雷。
- 对于其余对应 的格子,在该格子里填写一个数字,表示与其相邻的所有格子中地雷的总数。两个格子相邻当且仅当它们有共同的边。每个格子至多有四个相邻的格子。
对于每个宽度 ,定义 为所有没有地雷的格子中填写数字之和。给定整数 ,问 这 个值中的第 大值是多少。
输入格式
第一行输入两个整数 和 ()。
第二行输入一个长度为 的,仅包含数字 到 的字符串 。
输出格式
输出 中的第 大的值。
输入输出样例 #1
输入 #1
5 3
20103
输出 #1
7
输入输出样例 #2
输入 #2
5 1
20103
输出 #2
11
输入输出样例 #3
输入 #3
8 4
60409003
输出 #3
35
说明/提示
示例输入输出 #1 说明
下图展示了所有 种宽度下的网格。每个格子的点表示一个地雷。
图 F.1:所有 种可能的宽度下生成的网格。

将所有没有地雷格子的数字相加,可以得到如下结果:
第 大的值为 。