N個路由器在X軸上提供並且希望相互通信。如果路由器之間的距離小於或等於K,則一個路由器可以向另一個路由器發送消息。查找是否可以進行數據通信
給定P對路由器,要發送消息。我們需要用「Y」或「N」天氣該對之間的數據傳輸是可能的或不可行的。
注意:超過1個路由器可以在X軸上的同一個點上。
約束:
1 ≤ N, P ≤ 10^5
0 ≤ Ai, K ≤ 10^9
1 ≤ A, B ≤ N
所以我想對於每個查詢了一個非常有效的算法。
讓如果我們有5個路由器,K = 3和2次的查詢如下:
路由器的位置:= 0 3 8 5 12
查詢1:1 2
這裏答案是「Y」既在彼此
查詢的範圍2:1 3
這裏答案爲「Y」定義爲兩者在彼此 對於對範圍( 1,3)路由器1可以將消息發送到路由器2,路由器2可以將其發送到路由器4,它可以將其發送到路由器3。
這可能是更好的數學交換。不知道這甚至是遠程編程問題。我說數學交換,因爲它可能是一個圖論問題。這是一個「計算機科學」問題,但我有一種感覺,這將被標記爲脫離主題。 – Tommy
@Tommy爲什麼要進行數學交換?它與更好更高效的算法相關 – user3786422
只需預先計算並存儲每個路由器的範圍。或者,你是否有內存限制? –