我们获得了一系列数字。我们将执行两种类型的查询器: -
1)Find the triangle with the maximum perimeter in a given interval (l,r).
2)Update the array element at the given index i to a new given value x.
实施例: -
我们得到一个[] = 3,1,8,9,7。我们将总共执行4(q)个查询。第一个查询是找到区间中的最大周长(1,5)。因此,我们将返回24,因为范围(1,5)中三角形的最大可能周长是24(8 + 9 + 7)。 第二个查询是将索引2处的值更新为12.因此,现在我们的数组变为[] = 3,12,8,9,7。 第三个问题是在区间(1,3)中找到最大周长,即从数组元素3,1,8中找到最大周长。我们不能从这些元素中形成任何三角形。因此,我们返回0。 现在我想出了一个O(q * nlogn)方法,首先为每个查询排序元素,但是想知道是否还有另一种更好的方法。我正在考虑应用平方根分解或分段树,但我不确定。
答案 0 :(得分:0)
不要在这里询问codechef当前的挑战问题