Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
凸壳优化Java_Java_Convex Optimization - Fatal编程技术网

凸壳优化Java

凸壳优化Java,java,convex-optimization,Java,Convex Optimization,我最近读了一篇关于凸包技巧的文章。令人惊讶的是,在文章的结尾我读到,如果我们将行存储在std::集中,我们可以完全实现这个技巧(这意味着没有适用性的条件)。虽然我已经理解了上面提到的方法,但我在尝试实现它时总是失败。 换句话说,有一个大小为n的数组A,其中每个数组元素包含两个正整数ai和bi。 存在Q查询,其中每个查询可以是两种类型之一: 1) 给定一个正整数x,查找从1到n的所有i的max(aix+bi) 2) 更新某些i的ai和bi值 要更新的值将按非降序排列,即Q>=i1>i2>=1的ai

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

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

2) 更新某些i的ai和bi值

要更新的值将按非降序排列,即Q>=i1>i2>=1的
ai1>=ai2和bi1>=bi2


可以使用删除前一行并添加新行来执行更新零件。我正在寻找Java中的摊销(logn)复杂性的更新和查询部分

您的问题是什么?你试过什么?我们不会为您编写全部内容。事实上,我在这里找到了相同的代码部分。但在这个查询中,x总是上升的。在我的问题中,查询可能增加或减少。在给定的链接中,它的最小值(ax+b),我必须得到最大值(ax+b)。如果你能解释一下如何实现这一点,我将使代码
Math.max(1,2)
返回2,这两个值的最大值arguments@cricket_007是的,我知道。但是将注释中给出的链接中的
ptr=Math.min(ptr,len-1)
替换为
ptr=Math.max(ptr,len-1)
不会给出正确答案。你的问题是什么?你试过什么?我们不会为您编写全部内容。事实上,我在这里找到了相同的代码部分。但在这个查询中,x总是上升的。在我的问题中,查询可能增加或减少。在给定的链接中,它的最小值(ax+b),我必须得到最大值(ax+b)。如果你能解释一下如何实现这一点,我将使代码
Math.max(1,2)
返回2,这两个值的最大值arguments@cricket_007是的,我知道。但是将注释中给出的链接中的
ptr=Math.min(ptr,len-1)
替换为
ptr=Math.max(ptr,len-1)
将不会给出正确答案。