首先將矩形離散化成一系列線段, 這裡以橫邊為例, 我們將橫邊離散化之後按照縱座標排序, 縱座標相同的時候始邊在前。 然後對於乙個線段,對應區間的pos[j]++, 如果pos[j]由0-》1 或者由 1 -> 0那麼ans++. 這個過程還可以使用線段樹優化, **如下:
/*id: m1500293
lang: c++
prog: picture
*/#include
#include
#include
using
namespace
std;
intn;
int pos[20000+100
];int m = 10000
;struct
edge
return f }
}e[2][10000+10
];int solve(int
o)
return
res;
}int
main()
; e[
0][i*2+1] = (edge) ;
e[1][i*2] = (edge) ;
e[1][i*2+1] = (edge) ;
}int ans1 = solve(0
);
int ans2 = solve(1
); printf(
"%d\n
", ans1+ans2);
return0;
}
Poj1177 求矩形並的輪廓周長
題意 給出多個矩形,求這些矩形所覆蓋圖形的周長。可用線段樹來做,兩種方法 1 分別對x和y方向離散化後做線段樹,求出各方向上的輪廓長 2 對乙個方向上的座標進行離散化,用另一維進行掃瞄 1 覆蓋的線段長度 2 不相邊的線段數 3 該節點表示的區間兩端點是否被覆蓋 用於合併線段 code includ...
矩形的周長並 計蒜客
在乙個二維座標平面中,有 n 個矩形,每個矩形的邊都是平行於 x 軸或 y 軸的。給定這 n 個矩形的位置,這 n 個矩形之間可以相互覆蓋。求這 n 個矩形所組成的圖形的周長是多少。輸入格式 第一行輸入乙個整數 n,表示平面中矩形的數量。1 n 50000 接下來 n 行,每行四個整數 x1,y1,...
poj 1177 區間樹求矩形周長並
題意 在平面上給若干矩形,求它們的周長並。分析 用區間樹維護x軸上區間的一些覆蓋屬性。區間樹維護的是一些區間的性質,構造為build l,mid build mid,r 線段樹維護的是一些點的性質,構造為build l,mid build mid 1,r 區間樹經常被視為線段樹,但個人認為因為點線有...