假设您有N
个灯泡,这些灯泡是连续的。您还拥有M
至L
形式的R
开关,可用于在L
至{{1}范围内切换灯泡的状态。 }(包括两者)。
如何通过使用这些R
开关中的任意一个来确定是否存在打开所有灯泡的方式? (我只是想知道是否有可能)
一种简单的方法是尝试所有可能的开关组合,然后检查灯泡是否全部打开。但这是极其低效的。有没有更好的方法可以做到这一点?
灯泡和开关的数量限制为M
。
示例:
如果有1000
个灯泡和10
个开关在3
至1
,7
至6
范围内切换灯泡,7
到6
,那么我们可以只使用一次所有开关,然后将所有灯泡从10
转到1
。
答案 0 :(得分:1)
梅林的权利。如果通过部分枢轴实现LU分解,则通过仔细的枢轴选择,可以确保减少的行始终是间隔。真正引人注目的是,在进一步分析中,我们甚至不需要进行分解。实际上,只需确定图中的1
和N+1
之间是否存在路径,其中每个开关L..R
都会引起一条边{L, R+1}
。