使用一组操作对2D矩阵进行Nullify

时间:2013-01-20 14:08:00

标签: algorithm data-structures matrix mathematical-optimization

Given an N x M matrix having only positive integer values, we have to nullify the matrix 
i.e make all entries 0.
We are given two operations
1) multiply each element of any one column at a time by 2.
2) Subtract 1 from all elements of any one row at a time

Find the minimum number of operations required to nullify the matrix.

我想过做与LCM相关但无法达成解决方案的事情

1 个答案:

答案 0 :(得分:3)

让我们先解决1行,然后将其扩展到所有行。我们来一个随机的例子:

6 11 5 13

目标是将所有元素设为1.首先我们将5(最小元素)设为1.为此,我们需要减去4(即减去1四次)。结果数组是:

2 7 1 9

现在我们将1与2相乘并将所有行元素减1:

1 6 1 8

接下来,我们将2 1乘以2并将所有行元素减1:

1 5 1 7

继续以这种方式,我们到达1 1 1 1。现在我们减去1得到0 0 0 0

接下来,我们到达其他行并像上面那样做。我们上面取消的行都是零,因此在操作其他行时乘以2不会改变已经无效的行。

找到最小操作数的问题也取决于我们选择的行序列。我认为首先选择最大值最小的行(以及其他行)。我需要验证这一点。