#F. 开关灯(困难版)

    传统题 1000ms 256MiB

开关灯(困难版)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

你玩过“拉灯”游戏吗?

n×mn \times m 盏灯排成一个 n×mn \times m 的方形。

每一个灯都有一个开关,游戏者可以改变它的状态。

每一步,游戏者可以改变某一个灯的状态。

游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。

我们用数字 11 表示一盏开着的灯,用数字 00 表示关着的灯。

下面这种状态

10111
01101
10111
10000
11011

在改变了最左上角的灯的状态后将变成:

01111
11101
10111
10000
11011

再改变它正中间的灯后状态将变成:

01111
11001
11001
10100
11011

给定一些游戏的初始状态,编写程序判断游戏者是否可能使所有的灯都变亮。

输入格式

第一行输入正整数 n,mn,m

接下来一共nn行,每行mm个只会是0,10,1的数,第iijj列的数为第iijj列的灯的初始状态

输出格式

对于某一个游戏初始状态,若 无法使所有灯变亮,则输出 -1。否则,输出最少要操作的次数

样例 #1

样例输入 #1

5 5
0 0 1 1 1
0 1 0 1 1
1 0 0 0 1
1 1 0 1 0
1 1 1 0 0

样例输出 #1

3

提示

对于20%20\%的数据,n,m5n,m\leq5

对于100%100\%的数据,n500,m10n\leq 500,m \leq 10

12月1城阳提高组练习

未参加
状态
已结束
规则
IOI
题目
6
开始于
2024-12-1 8:30
结束于
2024-12-1 11:30
持续时间
3 小时
主持人
参赛人数
12