2023大厂真题提交网址(含题解):
www.CodeFun2000.com(http://101.43.147.120/)
最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练习,体会真题难度。现在OJ已录入50+道2023年最新大厂真题,同时在不断的更新。同时,可以关注"塔子哥学算法"公众号获得每道题的题解。
题目大意:
给你一个 5 ∗ 6 5 * 6 5∗6大小的二维01矩阵代表灯的开关状态。改变任意一个灯的状态,会导致其上下左右的灯的状态的改变。问一种灯的开关方案使得最终所有灯都关闭.
题目思路:
首先,一个灯只会被按0次或1次。两次等于没按。不同灯按下的效果是叠加起来的.
解释:想象按下某个位置,等效于原矩阵异或上一个新矩阵。
例如按下 ( 2 , 2 ) (2,2) (2,2)产生的效果.
A 2 , 2 = [ 0 1 0 1 1 1 0 1 0 ] A_{2,2} = \left[\begin{array}{lll} 0 & 1 & 0 \\ 1 & 1 & 1 \\ 0 & 1 & 0 \end{array}\right] A2,2= 010111010
那么 L → L ⊕ A 2 , 2 L \rightarrow L \oplus A_{2,2} L→L⊕A2,2
数学表示为:
*设原矩阵为 L L L.令 X i , j X_{i,j} Xi,j代表位置 ( i , j ) (i,j) (i,j)是否按下. A i , j A_{i,j} Ai,j为效果矩阵。
有等式: L ⊕ ( X 1 , 1 ∗ A 1 , 1 ) ⊕ . . . ⊕ ( X n , m ∗ A n , m ) = 0 L \oplus (X_{1,1}*A_{1,1}) \oplus ... \oplus (X_{n,m}*A_{n,m})=0 L⊕(X