练习专区

今天的一小步就是明天的一大步
Problem 1990 熄灯按钮
Accepted: 1   Total Submit: 2
Time Limit: 1000ms   Memory Limit: 30720KB
Description

有一个由按钮组成的矩阵,其中每行有m个按钮,共n行(0<m、n<=10)一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边) 的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状态;在矩阵边上的按钮改变4盏灯的状态;其他的按钮改变5盏灯的状态。在下图8-1中,左边矩阵中用X标记的按钮表示被按下,右边的矩阵表示灯状态的改变。与一盏灯毗邻的多个按钮被按下时,一次操作会抵消另一次操作的结果。在图8-2中,第2行第3、5列的按钮都被按下,因此第2行、第4列的灯的状态就不改变。根据上面的规则,我们知道:
1) 第2次按下同一个按钮时,将抵消第1次按下时所产生的结果。因此,每个按钮最多只需要按下一次。
2) 各个按钮被按下的顺序对最终的结果没有影响。

3) 对第1行中每盏点亮的灯,按下第2行对应的按钮,就可以熄灭第1行的全部灯。如此重复下去,可以熄灭第1、2、3、4行的全部灯。同样,按下第1 、2、3、4、5列的按钮,可以熄灭前5列的灯。 

A426-(2).jpg

给你每盏灯的一个初始状态,以及按下的位置。请你编程算出灯变化的情况。

Input

第一行有2个正整数m、n。接着有2组m行、n列个0或1的数,第1组的1表示灯是亮的,0是暗的。第2组的1表示按钮压下,表示不动

Output

输出每盏灯的结果。

Sample Input
5 6
0 1 1 0 1 0
1 0 0 1 1 1 
0 0 1 0 0 1 
1 0 0 1 0 1 
0 1 1 1 0 0 

0 0 1 0 1 0 
1 0 1 0 1 1 
0 0 1 0 1 1 
1 0 1 1 0 0 
0 1 0 1 0 0

10 10
0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 0
0 1 0 0 1 0 0 0 0 1
0 0 0 0 0 1 0 0 0 1
0 1 0 1 0 0 0 0 0 1

1 0 0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 1
0 0 0 1 1 0 0 0 0 1
0 0 1 1 1 1 0 0 0 1
0 0 1 1 1 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 1
Sample Output
Case 1:
1 0 1 0 1 0
0 0 1 1 1 0
0 1 0 1 1 0
0 1 1 0 0 0
0 0 0 1 1 0
Case 2:
1 0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 1
0 0 1 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 1 1
0 0 1 0 1 0 0 0 1 1
0 1 1 1 1 0 1 0 1 0
0 1 0 0 1 0 0 0 1 0
0 1 1 1 0 0 0 0 0 1
0 0 0 0 0 1 0 0 1 1
0 1 0 1 0 0 0 0 1 1
Hint
该题来自:2018年天梯赛选拔赛
提交     返回