如何找到可能的不同矩阵数量?

时间:2019-03-16 10:46:16

标签: algorithm matrix dynamic-programming

链接到实际问题:-https://www.codechef.com/problems/TREASURE

您将获得一个网格,该网格包含N行(从1到N)和M列(从1到M)。 让我们用(r,c)表示行'r'和列'c'中的单元格。如果网格的两个单元共享一个边,则它们是相邻的。

此网格的某些单元格包含宝藏。您不确定确切包含哪些单元格,但是可以进行网格分析,称为寻宝图。对于每个单元格(i,j),您将得到一个整数A(i,j),其含义如下:

A(i,j)= − 1:无信息

A(i,j)= 0:与细胞(i,j)相邻的偶数个细胞包含宝物。

A(i,j)= 1:与细胞(i,j)相邻的奇数个包含宝藏的细胞。

(注意:-零被视为偶数)

宝物布局是包含宝物的所有单元的集合。查找与所有给定信息一致的可能的宝物布局数量。

示例:-

以下(3 X 2)矩阵:-

1 -1

1 -1

1 0

答案:-可能的矩阵数为'4'。

1 个答案:

答案 0 :(得分:2)

一些想法可能有助于建立完整的解决方案。看例子,

1 -1
1 -1
1  0

y -1
1  x
x  0

零表示这两个x是宝物的偶数实例,无论哪种方式都用宝物来固定y来满足左中1相邻的三个单元格:

T -1  or  T -1
1  -      1  T
-  0      T  0

其他两个起作用的单元是左上1和左下{s}。修正一个,暗示另一个:

1  x  or  1  T
T  x      x  x
1  x      1  T

2 * 2 = 4

通常,当两个直接对角线单元或两个以三分之一分隔的行内单元不为-1时,会出现限制。我们还可以注意到,实际上有两个独立的矩阵。 x的价值暗示着仅在o s中的财富安排,反之亦然:

x o x o x
o x o x o
x o x o x