[COCI 2024/2025 #4] 棋 / Šah
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
P11649 [COCI 2024/2025 #4] 棋 / Šah
题目背景
译自 COCI 2024/2025 #4 T1。。满分为 。
题目描述
有一块 的国际象棋棋盘,上面摆放着 个棋子。棋子的类型只有骑士(knight),车(rook)和皇后(queen)。
已知
- 骑士的攻击范围为:骑士所在的格子,以及骑士所在的格子走一列两行(或者一行两列)能走到的所有格子;
- 车的攻击范围为:与车所在的格子同一行或者同一列的格子(包括车所在的格子);
- 皇后的攻击范围为:与皇后所在的格子同一行,同一列或者同一对角线的格子(包括皇后所在的格子)。
求出这个棋盘上有多少个格子被至少一个棋子攻击。
输入格式
第一行,两个正整数 。
接下来 行,每行一个字符和两个正整数 ,表示有一枚类型 的棋子在 。
- ,表示骑士;
- ,表示车;
- ,表示皇后。
数据保证不会有两个棋子在一个格子里。
输出格式
输出一行一个正整数,表示答案。
输入输出样例 #1
输入 #1
7 1
Q 4 4
输出 #1
25
输入输出样例 #2
输入 #2
5 1
N 3 3
输出 #2
9
输入输出样例 #3
输入 #3
6 3
R 1 4
Q 2 1
N 5 2
输出 #3
25
说明/提示
样例解释
样例 解释见图片。注意,每个棋子也会攻击它所在的格子。


数据范围
对于 的数据,保证:
- ;
- ;
- 不会有两个棋子在一个格子里。
| 子任务编号 | 得分 | |
|---|---|---|
#5718. 「COCI 2024/2025 #4」Šah
标签: 传统 | 时间限制: 3000 ms | 内存限制: 512 MiB |
题目描述
译自 COCI 2024/2025 Contest #4 T1「Šah」
两位国际象棋巨匠 Vito 和 Patrik 今年将在 Jane 街标志性的剧院前进行一场对局,以此最终证明谁才是史上最伟大的棋手。然而,由于标准国际象棋对他们来说已经变得索然无味,他们决定修改游戏规则以增加趣味性。在此我们仅提及与本任务相关的规则。
棋盘是一个 行 列的方阵。比赛仅使用马(Knight)、车(Rook)和后(Queen)这三种棋子。这些棋子的行为方式与标准国际象棋相同。若一个格子与某只车处于同一行或同一列,则该格子被其攻击。后同样攻击同一行和同一列的所有格子。除此之外,它还会攻击同一对角线上的所有格子。马攻击距离为两行一列或两列一行的格子。这些移动的样例可以在样例解释中看到。
注意:每个棋子也会攻击其所在的格子。此外,棋子可以穿透其他棋子进行攻击,即:无论被攻击的格子与攻击棋子之间是否存在其他棋子,该棋子都会根据上述规则攻击相应的格子。
Vito 正在为这场期待已久的对决做准备,并需要你的帮助。他决定通过练习快速观察能力来进行训练。他会在棋盘上放置 个棋子,然后确定所有被攻击的格子。你的任务是计算给定棋盘上被攻击的格子总数。
输入格式
第一行包含两个正整数 和 。
接下来的 行中,每行包含一个大写英文字母(代表棋子类型,可能是 N、R 或 Q,分别对应马、车和后)以及两个整数 和 ,代表该棋子所在的行和列。
棋盘上的任意一个格子里最多只能放置一个棋子。
输出格式
在一行中输出棋盘上被攻击的格子总数。
样例 1
输入
7 1
Q 4 4
输出
25
样例 2
输入
5 1
N 3 3
输出
9
样例 3
输入
6 3
R 1 4
Q 2 1
N 5 2
输出
25
数据范围与提示
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 棋盘上全是车 | ||
| 棋盘上的棋子全是车或后 | ||
| 无附加限制 |