#P13440. [GCJ 2009 #2] Crazy Rows

[GCJ 2009 #2] Crazy Rows

Description

给定一个 N×NN \times N 的矩阵,矩阵中的元素仅为 0011。你可以交换矩阵中任意两行相邻的行。

你的目标是让矩阵中所有的 11 都位于主对角线之下或在主对角线上。也就是说,对于每个 XX1XN1 \leq X \leq N,第 XX 行中不能有 11 出现在第 XX 列右侧的位置。

请你返回实现目标所需的最小行交换次数。

Input Format

输入的第一行包含一个整数 TT,表示测试用例的数量。接下来是 TT 组测试数据。

每组测试数据的第一行为一个整数 NN。接下来的 NN 行,每行包含 NN 个字符,每个字符为 0011

Output Format

对于每组测试数据,输出一行:

Case #X: K

其中 XX 是测试用例编号(从 11 开始),KK 是实现目标所需的最小行交换次数。

保证每个测试用例都有解。

3
2
10
11
3
001
100
010
4
1110
1100
1100
1000
Case #1: 0
Case #2: 2
Case #3: 4

Hint

限制条件

  • 1T601 \leq T \leq 60

小数据集(6 分)

  • 1N81 \leq N \leq 8

大数据集(10 分)

  • 1N401 \leq N \leq 40

翻译由 ChatGPT-4.1 完成。