【发布时间】:2018-09-16 19:37:34
【问题描述】:
数组 A 中有 N 个城市。还有一辆自行车最多可以在城市之间行驶 K 个单位。
有我们需要回答的 Q 查询。 每个查询都有 L R X 的形式。它询问从城市 X 可到达的城市数量,这些城市位于 A 中的 L 和 R 之间(1 - 索引)。每个城市都有一个汽油泵,因此您可以假设燃料在到达时会得到补充。
例子:
A = [4, 3, 1, 9, 6], K = 2
Q1 = 1 3 6 => (3)
Q2 = 1 5 3 => (4)
在第一季度,你可以从城市 6 到城市 4,然后到城市 3,再到城市 1。
Q2,从3号城市你可以去除9号城市以外的所有城市。
约束:
N
我该如何解决这个问题?显然不可能从每个 X 执行 DFS / BFS,因为它非常昂贵并且会超时。我尝试考虑不相交集来连接彼此相距 K 距离内的城市,但我对此并不太清楚。
感谢任何帮助。谢谢!
【问题讨论】:
-
我投票结束这个问题,因为它属于Computer Science Stack Exchange
-
人们已经看到了这个问题,也有一些投票和答案。你也可以在 StackOverflow 上看到几个这样的相关问题,所以我认为不应该删除它。
标签: algorithm graph graph-algorithm