我最近阅读了PEG Wiki关于凸壳技巧的文章。令人惊讶的是,在文章的最后,我读到如果我们将行存储在std :: set中,我们可以实现完全dynamic variant的技巧(意味着没有适用条件)。虽然我已经理解了所提到的方法,但是当我尝试实现它时,我总是失败 换句话说,存在大小为n的数组A,其中每个数组元素包含两个正整数ai和bi 有Q查询,其中每个查询可以是以下两种类型之一:
1)给定正整数x,找到从1到n的所有i的max (aix + bi)
2)为某些i更新ai和bi的值。
要更新的值将是非递减顺序,即ai1>=ai2 and bi1>=bi2 for Q >= i1 > i2 >= 1
可以通过删除上一行并添加新行来执行更新部件。我正在寻找更新和查询部分的Java中的摊销(log n)复杂性