农夫 John 曾经在他牧场的地面上画了一个矩形网格。在每个单元格中,他画了一个 或一个 (分别代表 和 )。
随着时间的推移,颜料褪色了,农夫 John 现在只记得某些单元格的值。然而,农夫 John 记得关于原始绘画的一个重要事实:
在每一行和每一列中,任意连续子段内的值之和总是在 到 之间(含端点)。
举个例子,考虑行 。它不满足条件,因为子段 的和是 。
但是,行 确实满足条件。
[ - ] + + - 和 = -1
[ - + ] + - 和 = 0
[ - + + ] - 和 = +1
[ - + + - ] 和 = 0
- [ + ] + - 和 = +1
- [ + + ] - 和 = +2
- [ + + - ] 和 = +1
- + [ + ] - 和 = +1
- + [ + - ] 和 = 0
- + + [ - ] 和 = -1
计算与农夫 John 记忆相符的不同网格的数量。