E. 中国象棋

    Type: Default 1000ms 256MiB

中国象棋

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目背景

蒙自一中的同学在课间有丰富多彩的活动,其中一部分同学很喜欢下象棋。

同时,邓老师说这次比赛不能有太多满分,所以让出题组出一道毒瘤题卡你们,所以根据象棋规则改编了一下,再加上实力强大的 kcs007 王老师,就有了如下这道题。

题目描述

在一个 n×mn\times m 的矩阵中,现在有若干个中国象棋棋子。

现在需要新加一枚棋子到空白处,求有多少种方案使得新加的棋子不被已有的棋子攻击? (也就是问有多少个空白格子不会被任何棋子攻击)

中国象棋棋子攻击范围详解

1. 帅(将) 代表数字1

  • 攻击范围:上下左右 1步
  • 示例
    • 帅在 (2,2) 可攻击:
      • (1,2)
      • (3,2)
      • (2,1)
      • (2,3)

2. 车(車) 代表数字2

  • 攻击范围
    • 直线无限延伸(上下左右)
    • 会被其他棋子阻挡
  • 示例
    • 车在 (3,3) 可攻击:
      • 整行 (3,1)(3,m)
      • 整列 (1,3)(n,3)
      • 从自己的位置开始延申,直到遇到第一个棋子后停止。

3. 马(馬) 代表数字3

  • 攻击范围
    • 走"日"字(2×1或1×2)
    • 蹩马腿规则
    • 当马的某个方向(上下左右其中一个)的相邻格子有其他棋子遮挡,那么这个方向的两个“日”字无法走到。
    • 见下图。

4. 炮(砲) 代表数字4

  • 攻击范围
    • 攻击需跳过一个棋子
  • 示例
    • 炮在 (3,3)
      • 可攻击 (3,5)(3,4) 有子
      • 不能攻击 (3,5)(3,4) 无子

5. 象(相) 代表数字5

  • 攻击范围
    • 走"田"字(对角2步)
    • 卡象眼:田字中心有子则不能走
  • 示例
    • 象在 (2,2)
      • 可攻击 (4,4)(3,3) 无子
      • 不能攻击 (4,4)(3,3) 有子

6. 士(仕) 代表数字6

  • 攻击范围
    • 斜线走1步
  • 示例
    • 士在 (2,2) 可攻击:
      • (1,1)
      • (1,3)
      • (3,1)
      • (3,3)

7. 兵(卒) 代表数字7

  • 攻击范围:上下左右 1步
  • 示例
    • 兵在 (2,2) 可攻击:
      • (1,2)
      • (2,1)
      • (2,3)
      • (3,2)

走子规则图解

帅:(红色代表攻击范围,不受其他棋子影响)举例棋盘大小 5×55\times 5

兵:(红色代表攻击范围,不受其他棋子影响)举例棋盘大小 5×55\times 5

马:(红色代表攻击范围,黄色代表可能影响攻击范围的其他棋子)举例棋盘大小 5×55\times 5

炮:(红色代表攻击范围,黄色代表可能影响攻击范围的其他棋子) 举例棋盘大小 6×66\times 6

车:(红色代表攻击范围,黄色代表可能影响攻击范围的其他棋子)举例棋盘大小 5×55\times 5

象:(红色代表攻击范围,黄色代表可能影响攻击范围的其他棋子)举例棋盘大小 5×55\times 5

士:(红色代表攻击范围,不受其他棋子影响)举例棋盘大小 5×55\times 5

输入格式

测试数据先输入两个整数 n,mn,m,代表矩阵的长和宽。 接下来 nn 行,每行 mm 个数字,代表初始棋盘状态: 0表示空白,1表示帅,2表示车,3表示马,4表示炮,5表示象,6表示士,7表示兵。

输出格式

对于每组测试数据,输出答案。

3 3
000
010
000
4

样例解释

(1,1),(1,3),(3,1),(3,3)(1,1),(1,3),(3,1),(3,3) 不会被攻击到。

附件

大样例

提示

对于20%的数据,棋盘上没有任何棋子

对于50%的数据,棋盘上没有炮和车

对于100%的数据,1n,m10001\le n,m\le1000

夏令营结营测试

Not Attended
Status
Done
Rule
IOI
Problem
5
Start at
2025-7-16 8:30
End at
2025-7-16 10:30
Duration
2 hour(s)
Host
Partic.
53