AT_abc377_b.[ABC377B] Avoid Rook Attack

入门

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个由 88 行 88 列共 6464 个格子组成的棋盘。我们将从上往下的第 ii 行(1≤i≤81\leq i\leq 8)、从左往右的第 jj 列(1≤j≤81\leq j\leq 8)的格子称为格子 (i,j)(i,j)。

每个格子要么是空格,要么已经有棋子放置。棋盘的状态由一个长度为 88 的字符串序列 (S1,S2,S3,…,S8)(S_1, S_2, S_3, \ldots, S_8) 表示。对于格子 (i,j)(i,j)(1≤i≤8,1≤j≤81\leq i\leq 8, 1\leq j\leq 8),如果 SiS_i 的第 jj 个字符为 .,则该格子为空;如果为 #,则该格子上有一个棋子。

你想在任意一个空格上放置你自己的棋子,并且要保证不会被已经放置的任何棋子吃掉。

对于放在 (i,j)(i,j) 的棋子,如果满足以下任一条件,则可以吃掉其他棋子:

  • 在第 ii 行的格子上放置的棋子
  • 在第 jj 列的格子上放置的棋子

例如,放在 (4,4)(4,4) 的棋子可以吃掉下图中蓝色标记的格子上的棋子。

请你计算,有多少个格子可以放置你的棋子,并且不会被已经放置的任何棋子吃掉。

输入格式

输入从标准输入中给出,格式如下:

S1S_1
S2S_2
S3S_3
S4S_4
S5S_5
S6S_6
S7S_7
S8S_8

输出格式

输出一个整数,表示可以放置你的棋子且不会被已有棋子吃掉的空格数量。

输入输出样例

  • 输入#1

    ...#....
    #.......
    .......#
    ....#...
    .#......
    ........
    ........
    ..#.....

    输出#1

    4
  • 输入#2

    ........
    ........
    ........
    ........
    ........
    ........
    ........
    ........

    输出#2

    64
  • 输入#3

    .#......
    ..#..#..
    ....#...
    ........
    ..#....#
    ........
    ...#....
    ....#...

    输出#3

    4

说明/提示

限制条件

  • SiS_i 是由 . 和 # 组成的长度为 88 的字符串(1≤i≤81\leq i\leq 8)

样例解释 1

已经放置的棋子可以吃掉下图中蓝色标记的格子上的棋子。

因此,你可以安全放置棋子的格子为 (6,6)(6,6)、(6,7)(6,7)、(7,6)(7,6)、(7,7)(7,7) 共 44 个格子。

样例解释 2

也有可能没有任何棋子被放置。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页