我正在尝试解决这个 Cyberchef 挑战:
在平面上给你 N 个点(编号为 1 到 N);对于每个有效的 i,第 i 个点是 Pi=(i,Ai)。它们之间有 N-1 个线段(编号为 1 到 N-1);对于每个有效的 i,第 i 个线段是通过连接点 Pi 和 Pi+1 形成的。
给你 Q 个水平线段。每个查询水平线段由两个点表示,从点 (x1,y) 到点 (x2,y)(它停止并且不再传播)。对于每个水平线段,您必须从它在途中碰撞的那些(N-1 条线段)中找到线段的数量。
所以这就是问题所在:
- 2<=N<= 100000
- 1<=Q<= 100000
谁能教我在时间复杂度方面哪种方法最好和最有效?