【发布时间】:2017-05-28 15:40:49
【问题描述】:
我试图解决this 算法问题,我遇到了这个不错的解决方案:
"这个想法是把ai、bi和 ci 不对称。 BIT 支持最低 查询从 1 开始的键间隔。我们使用 ci 作为值和 bi 作为键。这些是按照增加ai的顺序插入的。这个 方式,对于每个 ai ,数据结构允许查询 [1..bi 中 bj 的 cj 的最小值(可能为 ∞)和 aji。我们有 cji 当且仅当参赛者 i 不是 很好。”
现在我很难理解这个解决方案。
这是我对这个解决方案的理解:我知道二叉索引树用于回答查询,例如在数组中查找区间的总和,它还支持元素更新。它分别以 O(logn) 时间复杂度执行这两项操作。现在这个解决方案说我们构建 BIT,键为 ci,值为 bi,基本上 bi 是一个附加值每个节点都有。现在我们在树中插入 ai 值增加的元素,这就是我失去控制的地方。我们插入节点的顺序以及该部分后面的语句所说的内容有什么关系,我不知道。
请帮助我理解这个解决方案的含义。
【问题讨论】:
标签: algorithm tree binary-indexed-tree