对于当前行或者列的操作次数,只有0或者1次,再多操作没有意义,最终结果与操作的顺序无关,考虑到 n 最大只有 4,我们可以暴力枚举每行每列是否操作。 时间复杂度O(2n×2n×n2)
n = int(input())
a = [list(map(int, input().split())) for i in range(n)]
有一个 n×n 的灯阵,每个灯的状态要么是暗(用 0 表示),要么是亮(用 1 表示)。初始灯阵和目标灯阵均已给出。每次操作可以选择灯阵的一整行或者一整列,将该行或该列所有灯的状态切换:暗变亮,亮变暗。
请你求出将初始灯阵变为目标灯阵所需的最少操作次数。如果无论如何操作都无法使两个灯阵相同,则输出 -1。
约束:灯阵的行列数 n 满足 1≤n≤4。灯阵中仅包含 0 或 1。
第一行包含一个整数 n,表示灯阵的行数和列数。
接下来 n 行,每行包含 n 个用空格分隔的整数(0 或 1),描述初始灯阵。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册