【问题标题】:Li Chao tree vs Convex hull trick. Which should be preferred and when?李超树 vs 凸壳技巧。应该首选哪个以及何时?
【发布时间】:2019-07-19 19:07:19
【问题描述】:

我很难理解 Convex hull 技巧。李超树更容易理解。了解 Convex hull 技巧也很重要吗?

【问题讨论】:

    标签: algorithm dynamic-programming convex-hull


    【解决方案1】:

    首先,你应该仔细看看 LiChao Tree (LC) 和 Convex Hull Trick (CHT) 这两种数据结构支持哪些操作。它们都解决了相同的基本问题 - 我们有一组线(线性函数)S 和操作:

    1. 向集合中添加线/线性函数
    2. 对于给定的 X 坐标,在 X 位置找到最大值的函数。

    现在,你应该学习哪一个?我还发现 LC 更容易理解(而且实施起来也更短)。但是,LC 有一个 CHT 没有的限制 - LC 只能回答类型 2 的查询。仅针对整数坐标 X,并且由于它与线段树非常相似,我们不能支持 X 坐标的任意大区间必须撒谎。使用 CHT,您对线的坐标和 X 的查询值没有任何限制。

    在竞争性编程的背景下(我想这就是问题的来源)LiChao 树足以解决许多问题,但是 CHT 更加通用,并且可能存在一些仅用 LC 无法解决的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      • 2013-07-08
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多