|
1
0
是的,我们可以在O(n*k log n)中完成,其中n是块数,k是便利设施数。 便利设施列表很小,所以创建阵列列表 对于存在这种便利设施的每个便利设施和存储块位置。 例如,使用您提供的示例:
现在我们可以循环遍历所有块并使用下界(二进制搜索) 找到最近的街区,为每个需要的便利设施提供所需的便利设施。 然后选择一个距离所需便利设施最小的街区。 |
|
|
2
0
解决方案是包含所有便利设施的最短块子阵列。请注意,最左边的块的便利性必须只存在一次;最右边的块也是如此。居住的街区就在中间。 两个指针的技术很适合。
有一个数组
假设任何给定的街区没有太多的便利设施,这将运行
正确性的证明留作练习。 |
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 2 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 2 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 2 年前 |