Press
不妨以位置為 \(x\) 軸,時間為 \(y\) 軸。
當一個機器人到達點 \(A\) 後,如果可以繼續走到 \(B\) 當且僅當 \(|x_A - x_B| \leq |y_A - y_B|\)。
將其在 \(T=10^9\) 時刻可以按到的按鈕用區間表示出來 \([x_A-(T-y_A),x_A+(T-y_A)]\) 記做 \(S_A\)。
簡單畫圖不難發現上述條件等價於 \(S_B \in S_A\)。
我們將所有的區間求出,按照左端點排序,將右端點看成一個數列。
每一個最長不上升子序列都可以被一個機器人按完,現在求需要多少個機器人。
導彈攔截即可,答案為最長上升子序列的長度。
時間複雜度 \(O(n\log n)\)。
參考程式碼