AT_abc377_b.[ABC377B] Avoid Rook Attack
入门
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个由 8 行 8 列共 64 个格子组成的棋盘。我们将从上往下的第 i 行(1≤i≤8)、从左往右的第 j 列(1≤j≤8)的格子称为格子 (i,j)。
每个格子要么是空格,要么已经有棋子放置。棋盘的状态由一个长度为 8 的字符串序列 (S1,S2,S3,…,S8) 表示。对于格子 (i,j)(1≤i≤8,1≤j≤8),如果 Si 的第 j 个字符为 .,则该格子为空;如果为 #,则该格子上有一个棋子。
你想在任意一个空格上放置你自己的棋子,并且要保证不会被已经放置的任何棋子吃掉。
对于放在 (i,j) 的棋子,如果满足以下任一条件,则可以吃掉其他棋子:
- 在第 i 行的格子上放置的棋子
- 在第 j 列的格子上放置的棋子
例如,放在 (4,4) 的棋子可以吃掉下图中蓝色标记的格子上的棋子。

请你计算,有多少个格子可以放置你的棋子,并且不会被已经放置的任何棋子吃掉。
输入格式
输入从标准输入中给出,格式如下:
S1
S2
S3
S4
S5
S6
S7
S8
输出格式
输出一个整数,表示可以放置你的棋子且不会被已有棋子吃掉的空格数量。
输入输出样例
输入#1
...#.... #....... .......# ....#... .#...... ........ ........ ..#.....
输出#1
4
输入#2
........ ........ ........ ........ ........ ........ ........ ........
输出#2
64
输入#3
.#...... ..#..#.. ....#... ........ ..#....# ........ ...#.... ....#...
输出#3
4
说明/提示
限制条件
- Si 是由
.和#组成的长度为 8 的字符串(1≤i≤8)
样例解释 1
已经放置的棋子可以吃掉下图中蓝色标记的格子上的棋子。

因此,你可以安全放置棋子的格子为 (6,6)、(6,7)、(7,6)、(7,7) 共 4 个格子。
样例解释 2
也有可能没有任何棋子被放置。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?