#P16745. [GKS 2019 #H] Diagonal Puzzle

[GKS 2019 #H] Diagonal Puzzle

题目描述

Kibur 为你设计了一个新谜题!谜题包含一个 N×NN \times N 的方格网格。每个方格是黑色或白色。目标是用尽可能少的步数使所有方格变为黑色。

在一步操作中,你可以选择任意一条对角线,并翻转该对角线上所有方格的颜色(黑色变白色,白色变黑色)。例如,下面展示了 3×33 \times 3 网格中所有 1010 条可能的对角线。

/.. ./. ../ ... ...
... /.. ./. ../ ...
... ... /.. ./. ../

... ... \.. .\. ..\
... \.. .\. ..\ ...
\.. .\. ..\ ... ...

给定棋盘的初始配置,求使所有方格变黑所需的最少步数。保证存在一种方法能使所有方格变黑。

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。每个测试用例的第一行包含一个整数 NN,表示网格的大小。随后 NN 行,每行包含 NN 个字符,描述棋盘的初始配置。如果第 rr 行第 cc 列的方格初始为白色,则该位置字符为 .(ASCII 码 46);否则为 #(ASCII 码 35),表示黑色。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是使所有方格变黑所需的最少步数。

3
3
..#
#.#
#..
5
.####
#.###
##.##
###.#
#####
2
##
##
Case #1: 3
Case #2: 2
Case #3: 0

提示

限制条件

1T1001 \le T \le 100

保证存在一种方法能使所有方格变黑。

测试集 1(可见)

2N82 \le N \le 8

测试集 2(隐藏)

2N1002 \le N \le 100

翻译由 DeepSeek V4 Pro 完成