问题描述
|
在HN上看到了以下难题,并认为我会在此处重新发布。可以使用Simplex来解决,但我想知道是否有更优雅的解决方案,或者有人可以证明NP完整性。
下面的每个点代表激光的位置。通过用^,v,<或>代替点来指示激光发射的方向。每个网格位置i,j应该被精确的grid [i] [j]激光器击中。在下面的示例中,栅格位置0,0应该被准确的grid [0] [0] = 2台激光器击中。
激光穿过其路径上的所有物体,包括其他枪支(不消灭那些枪支)。
2 2 3 . 1 . 2 2 3
1 . 2 1 1 . 1 . 2
2 3 . 1 . 2 . 4 .
. 3 . 2 2 . 2 3 4
1 . 2 . 2 3 2 . .
2 3 . 3 . 3 2 2 .
3 . 2 4 2 . 2 . 2
1 1 . . 1 3 . 2 .
. 2 1 . 2 . 1 . 3
解决方法
如果可以通过Simplex(线性编程)解决,则说明它不是NP完整的。