#P15492. [ICPC 2025 APC] Control Towers
[ICPC 2025 APC] Control Towers
说明
你是一名建筑师,负责设计城市的新机场。完成设计后,你才意识到忘了为控制塔预留位置。
新机场的布局可以用一个 行 列的二维网格表示,行从上到下编号为 到 ,列从左到右编号为 到 。第 行第 列的单元格记为 。每个单元格要么是占用的,要么是空的。
你需要放置四个控制塔(编号为 到 ),每个控制塔放在不同的空单元格中。为了便于不同塔之间的通信,对于所有 ,要求塔 和塔 放置在同一行或同一列。
你需要计算满足上述要求的控制塔放置方式的数量。如果存在某个 使得控制塔 放置在不同的单元格,则两种方式视为不同。
输入格式
输入的第一行包含两个整数 和 ()。接下来的 行,每行包含一个长度为 的字符串。第 行第 个字符如果是 #,表示单元格 被占用;否则是 .(点号),表示空单元格。
输出格式
输出满足上述要求的控制塔放置方式的数量。
3 4
.#.#
#...
.###
10
4 6
######
#.#.#.
.#.#.#
######
0
1 10
..........
5040
1 10
##########
0
提示
样例输入/输出 #1 的解释
图 A.1 展示了所有 种可能的控制塔放置方式,其中编号为 、、 和 的单元格分别代表控制塔 、、 和 。
:::align{center}

图 A.1:所有 种可能的控制塔放置方式。 :::
样例输入/输出 #2 的解释
第 行的任何控制塔都不可能和第 行的任何控制塔在同一列。由于没有足够的空单元格将四个控制塔全部放在同一行,因此不存在满足上述要求的放置方式。
样例输入/输出 #3 的解释
所有 种控制塔位置的方式都满足上述要求。
样例输入/输出 #4 的解释
没有空单元格可以放置任何控制塔。
翻译由 DeepSeek 完成
京公网安备 11011102002149号