【发布时间】:2018-12-01 04:41:23
【问题描述】:
给定n 灯泡,最初,所有灯泡都关闭,m 开关,每个开关控制一系列灯泡l 到r(包括两者)
我们需要确定是否可以使用任何m 开关随时打开所有灯泡。
如果可以,答案可以是肯定的,如果不能,答案可以是否定的。
例如,首先给出n 然后m 然后接下来的m 行给出了开关控制的范围。在下面的例子中n = 5 和m = 2。
5 2
1 2
3 5
这里的答案是肯定的,因为 2 个开关可以控制所有的灯泡。并且可以开启。
第二个例子
5 2
1 2
3 4
这里的答案是否定的,因为其中一个灯泡不受任何开关控制。
我所做的是声明一个大小为 m 的数组计数,并且对于每个开关,如果计数的总和等于 n,则我计算了它控制的灯泡数量 (r-l +1) 然后是,否则否。
但只有示例测试用例通过,其余全部失败。
注意:范围可能相交
如果范围相交,例如
1 3
3 5
答案是否定的,因为当一转时,第三个灯泡上的第二个开关会从打开变为关闭
所以答案是否定的。
【问题讨论】:
-
范围可以相交吗?另外,请编辑标题和帖子(没有“u”字样、大写字母等)?
-
我猜范围可以重叠。例如
1 3和3 5。在这种情况下,如果两个开关都打开会发生什么? -
没有提到范围是否可以重叠,但我想它们会相交,这就是让问题变得困难的原因,否则它只会通过简单的计数来运行。
-
我同意。因此,如果第一行是
5 2,然后是1 3和3 5,答案是YES 还是NO? -
@dyukha 如果您认为问题的表述需要改进,您可以建议edit。