給一個線段的集合S,其中有n條線段,給定任意一條直線L,判斷直線L是否將集合S中的線段分隔?
“分隔”是指S中每個線段都處于直線L的一邊,并且直線L不與任何一個線段相交,如下圖藍色直線分隔紅色線段集

現在要求對集合S做預處理,然后對于任意一條直線,查詢是否“分隔”時間復雜度為logn.
請問如何做出預處理啊?給個思路也可以~
祝大家新年快樂!
uj5u.com熱心網友回復:
如果經過預處理的話,可以把S里面的所有線段,轉化為以L為X軸,或Y軸的坐標系里面的線段,并排序,然后二分法查找,時間復雜度是O(LOGN)uj5u.com熱心網友回復:
L是隨機的,也就是會給很多L做判斷,每次判斷都是logn,但是預處理只能做一次
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/242516.html
標籤:數據結構與算法
