平面上 n 城市,初始無道路。操作:road A B 連接城市;line C 查詢 y=C 水平線穿過多少州及城市總數。州=連通分量。C 為 .5 結尾實數。
[l, r] 及城市數 d。nc(城市數增量) 和 nz(州數增量)。設兩州 y 範圍分別為 [l1, r1], [l2, r2](假設 l1 ≤ l2)。
l2 ≥ r1):中間間隙 [r1, l2] 新增 1 州(nz+=1),右州範圍 [r1, r2] 城市數增量 nc+=d1。r2 ≤ r1):右州內部 [l2, r2] 減少 1 州(nz-=1),左州外部 [r2, r1] 城市數增量 nc+=d2。[l1, l2] 城市數增量 nc+=d2(合併後新州範圍擴大)。line C → 離散化索引查詢線段樹單點值,輸出 nz (州數) 和 nc (城市數)。
本題巧妙結合並查集動態連通與線段樹區間加點查,將幾何統計問題轉化為數據結構維護,是綜合類難題佳作。