給定 N×M 網格,初始有山地(1)與平地(0)。起點為頂行任意平地,終點為底行任意平地。每年在指定坐標生成一座新山(不可通行)。求通訊完全中斷的最早年份,若始終連通輸出 -1。
正向模擬每年增加障礙物並檢查連通性代價高。改用離線逆向處理:
Q 年的山全部標記為阻隔,構建最終地圖。並查集維護連通分量,虛擬節點 S 連接頂行所有平地,T 連接底行所有平地。若 find(S) == find(T) 則連通。
S/T。Q 年倒至第 1 年,將該年山點恢復為平地,合併其四鄰域平地,檢查 S、T 是否連通。時間 O(NM α(NM) + Q α(NM)),空間 O(NM),滿足 N,M ≤ 500 限制。