#6920. C.涂鸦连线(Doodle)
C.涂鸦连线(Doodle)
C.涂鸦连线(Doodle)
题目描述
小明在一张 (R\times C) 的方格纸上涂黑了若干格。画作中存在一条由连续黑格组成的路径,从左上角 ((0,0)) 连接到右下角 ((R-1,C-1)),称为对角路径。
两个方格共享一条边时才视为相邻。对角路径满足:
- 起点和终点各恰好与一个黑格相邻;
- 路径中间的每个黑格都恰好与两个黑格相邻;
- 路径中不会出现 (2\times2) 的区域全部为黑格。
方格纸上还可能有不属于这条路径的黑格。请计算对角路径包含的黑格数量。

方格纸中的对角路径包含 (17) 个黑格】
输入格式
第一行包含两个整数 (R,C)((1\le R,C\le20)),表示方格纸的行数和列数。
接下来 (R) 行,每行包含 (C) 个整数,相邻整数以空格分隔:
0:该格没有涂黑;1:该格已涂黑。
输出格式
输出一个整数,表示从左上角到右下角的对角路径包含的黑格数量。
样例 1
输入
6 6
1 0 0 0 0 0
1 1 1 1 0 0
0 0 0 1 0 0
0 0 0 1 0 0
0 0 0 1 1 0
0 0 0 0 1 1
输出
11
样例 2
输入
8 8
1 1 1 0 1 0 0 0
0 0 1 0 1 1 1 1
0 0 1 1 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 1 0 0 0 0
1 1 0 1 0 1 1 1
0 1 0 1 1 1 0 1
0 1 0 0 0 0 0 1
输出
17
评分说明
每组包含多笔测试数据,只有答对该组的全部数据才能获得对应分数。
| 测试组 | 分值 | 限制 |
|---|---|---|
| 第一组 | 20 分 | 除对角路径外,没有其他黑格 |
| 第二组 | 80 分 | 无特殊限制 |
| 测试点编号 | 层级 | 数据规模 | 特殊性质 | 标准输出 | 覆盖目的 |
|---|---|---|---|---|---|
| 1 | 弱数据 | 1×1 |
起点即终点,起点值为 0 |
1 | 最小规模;验证程序不检查起点值 |
| 2 | 1×5 |
单行全为 1 |
5 | 连续向右移动;覆盖单行边界 | |
| 3 | 正常数据 | 5×5 |
折线路径,包含向下、向右、向上移动 | 13 | 检查四方向移动及已访问位置清零 |
| 4 | 7×7 |
左右交替的蛇形路径 | 25 | 覆盖向左移动、多次转向和移动优先级 | |
| 5 | 极限数据 | 20×20 |
接近最长的蛇形路线 | 191 | 覆盖数组最大规模及长路径计数 |