常用的套路
各種合法矩形限制、合法區間對的限制,都可以轉化為矩形面積並
還有直接矩形:(HDU 1542) Atlantis 矩形面積並——掃描線、CF1086F Forest Fires
就是一個掃描線
線段樹每個區間有一個c值,表示這個區間被完全覆蓋次數。
類似李超線段樹,我們把每個加入的線段分成logn份,恰好放進每個區間才行。
這個區間的c值,就加1,表示被完全覆蓋一次。
計算這個區間的實際覆蓋貢獻cnt時,如果c>0 顯然就是區間長度了。
如果不是,那就是兩個兒子區間的貢獻cnt和。
pushdown都不用。
說一下兩種離散化方法:
1.轉化成邊界在“線”上
只需要線段樹的葉子值是這個線和下一個線的距離即可。
2.轉化為邊界在“格”上
線段樹的葉子值是一段格子。
如果相鄰兩行格子之間相差>1,就額外加入一行格子,代表這兩行格子之間的所有格子。