高斯消元法求解异或线性方程组
方程数和变量数均为行数*列数
题意:给出一个5*6的矩阵,每个位置表示灯,1表示灯亮,0表示灯不亮,然后如果选择位置(i,j)点击,则该位置及其上下左右的灯的状态都会变成与原来相反的状态,现在要你输出一个5*6的矩阵,1表示这个位置上的灯被点击过,0表示没有被点击过,要求使得原矩阵的灯都熄灭。
首先这些灯的点击顺序是任意的;
其次每个灯只能被点击一次,因为点击两次相当于没点;
举个栗子:
原矩阵: L 0 1 0
1 1 0
0 1 1
每次点击某灯泡的时候相当于在原矩阵上异或上一个如下的矩阵:
如 点击(1,1)点
A(1,1)= 1 1 0
1 0 0
0 0 0(A一开始都是0即灯不亮,点击某个位置,该位置及其上下左右灯的状态变相反所以点击(1,1)点就是我写的A(1,1)了)
则原矩阵变成了 L 1 0 0
0 1 0
0 1 1
这不就是点了(1,1)这个位置上的灯泡
x(i,j)表示使L变成0矩阵,(i,j)位置上的灯泡点没点击的情况,1代表点击了,0代表没点击,
所以可以列出如下方程:
Lxor(x(1,1)*A(1,1))xor*(x(1,2)*A(1,2))···xor(x(1,6)*A(1,6))xor(x(2,1)*A(2,1))···xor(x(2,6)*A(2,6))···xor(x(5,1)*A(5,1))
···xor(x(5,6)*A(5,6))=0;
方程两边同时异或上L变成:
(x(1,1)*A(1,1))xor*(x(1,2)*A(1,2))···xor(x(1,6)*A(1,6))xor(x(2,1)*A(2,1))···xor(x(2,6)*A(2,6))···xor(x(5,1)*A(5,1))
···xor(x(5,6)*A(5,6))=L;
化简一下就会发下有 30个方程数和变量数,这就是一开始说的加粗的那就话;
今天一整天看了这一道题,感觉之所以看一整天是看的博客上博主表达太不清晰,一边读一遍猜博主的意思,写一个好博客真的很重要。。。。
明天接着看然后更新此题,
晚上打了比赛,水了三个题,有一个题真是水过。。。