找到一种有效的矩阵运算算法

时间:2012-09-11 01:42:11

标签: algorithm

这是一个采访问题:

  

对于矩阵,我们定义一个操作,当我们将1添加到一个条目时,   所有周围的条目(上,下,左,右)也将添加   1.给定一个正矩阵,找到一个算法来确定是否可以使用这种操作从零矩阵构造矩阵。

解决问题的有效算法是什么?

我现在能想到的是使用回溯来尝试所有可能的组合,但这绝对不是有效的。问题有点像Lights Off游戏,但这里不是0/1,这使得更复杂。

感谢。

编辑:

例如:

3 3 can be constructed from 0 0 -> 1 1 -> 2 2 -> 3 3
1 2                         0 0    1 0    1 1    1 2

2 个答案:

答案 0 :(得分:1)

线性代数?

Cell i,j is touched x<sub>ij</sub> times.

n 2 变量和方程式。解决。通过高斯方法O(n^6),可能存在其他更快的方法。

此外,矩阵是特殊的,所以可以使它更快。

答案 1 :(得分:0)

我发现很少的东西(对于2x2矩阵),想先分享它们 - 矩阵中所有元素的总数应该可以被3整除(然后才有可能)。
- 我们必须在形式允许的操作步骤中表达给定的矩阵

3 3  -> 2* 1 1    +    1* 1 1
1 2        0 1            1 0

在某些情况下,无法做到这一点,例如

5 3  ->2* 1 0  +   2* 1 1     = 4 2
2 4       1 1         0 1       2 4

5 3   -   4 2     = 1 1 (this is not allowed operation)
2 4       2 4       0 0