李超树vs凸壳树。什么时候应该首选?

时间:2019-07-19 19:07:19

标签: algorithm dynamic-programming convex-hull

我难以理解凸壳刻度线。李朝树更容易理解。理解凸包技巧也很重要吗?

1 个答案:

答案 0 :(得分:0)

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

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

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

在竞争性编程的背景下(我想这就是问题的来源)LiChao树在很多问题上都足够了,但是 CHT 更通用,可能有一些问题无法仅用 LC 解决。

>