Algorithm 给定一个连续图。求对数中线段的交点数(n)

Algorithm 给定一个连续图。求对数中线段的交点数(n),algorithm,data-structures,graph,Algorithm,Data Structures,Graph,给定一个数组,例如:Arr[1 3 4 4 7 8 6 6 4 2],其中10^10>Arr[i]>0,表示y坐标。x坐标是它们对应的数组索引。连续图是通过连接(i,Arr[i])和(i+1,Arr[i+1])等形成的。因此,基本上它是通过连接直线形成的图。给定一个从x范围(x1到x2)平行于y轴的线段。如果给定的线段通过一个交点,则我们将其计为2个交点,除非相交线的左端点为(x2,y)或其右端点为(x1,y),然后我们将其仅计为1个交点。我们可以通过该线段日志(n)找到交点的数量吗时间?这是一

给定一个数组,例如:Arr[1 3 4 4 7 8 6 6 4 2],其中10^10>Arr[i]>0,表示y坐标。x坐标是它们对应的数组索引。连续图是通过连接(i,Arr[i])和(i+1,Arr[i+1])等形成的。因此,基本上它是通过连接直线形成的图。给定一个从x范围(x1到x2)平行于y轴的线段。如果给定的线段通过一个交点,则我们将其计为2个交点,除非相交线的左端点为(x2,y)或其右端点为(x1,y),然后我们将其仅计为1个交点。我们可以通过该线段日志(n)找到交点的数量吗时间?

这是一场正在进行的比赛。请再等一天,看社论。

到目前为止您尝试了什么?分段树。我认为每一行都是一个节点。但在最坏的情况下(图不断增加)这将需要接近线性时间。我还尝试将所有递增序列作为一个节点,然后将下一个递减序列作为一个节点,然后将下一个递增序列作为一个节点,但在最坏的情况下,它必须移动到叶节点以获得正确的答案。