1

我最近阅读了PEG Wiki上关于凸包技巧的文章。令人惊讶的是,在文章的最后,我读到如果我们将这些行存储在 std::set 中,我们可以实现该技巧的完全动态变体(意味着没有适用条件)。虽然我已经理解了提到的方法,但是当我尝试实现它时总是失败。
换句话说,有一个大小为 n 的数组 A,其中每个数组元素包含两个正整数 ai 和 bi。
有 Q 查询,其中每个查询可以是以下两种类型之一:

1) 给定一个正整数 x,找出max (aix + bi)从 1 到 n 的所有 i

2) 更新一些 i 的 ai 和 bi 的值。

要更新的值将按非递减顺序,即ai1>=ai2 and bi1>=bi2 for Q >= i1 > i2 >= 1.
可以通过删除前一行并添加新行来执行更新部分。我正在寻找更新和查询部分以了解 Java 中的摊销(log n)复杂性

4

0 回答 0