1. 程式人生 > >2017 油漆面積

2017 油漆面積

標題:油漆面積


X星球的一批考古機器人正在一片廢墟上考古。
該區域的地面堅硬如石、平整如鏡。
管理人員為方便,建立了標準的直角座標系。


每個機器人都各有特長、身懷絕技。它們感興趣的內容也不相同。
經過各種測量,每個機器人都會報告一個或多個矩形區域,作為優先考古的區域。


矩形的表示格式為(x1,y1,x2,y2),代表矩形的兩個對角點座標。


為了醒目,總部要求對所有機器人選中的矩形區域塗黃色油漆。
小明並不需要當油漆工,只是他需要計算一下,一共要耗費多少油漆。


其實這也不難,只要算出所有矩形覆蓋的區域一共有多大面積就可以了。
注意,各個矩形間可能重疊。


本題的輸入為若干矩形,要求輸出其覆蓋的總面積。


輸入格式:
第一行,一個整數n,表示有多少個矩形(1<=n<10000)
接下來的n行,每行有4個整數x1 y1 x2 y2,空格分開,表示矩形的兩個對角頂點座標。
(0<= x1,y1,x2,y2 <=10000)


輸出格式:
一行一個整數,表示矩形覆蓋的總面積。


例如,
輸入:
3
1 5 10 10
3 1 20 20
2 7 15 17


程式應該輸出:
340


再例如,
輸入:
3
5 2 10 6
2 7 12 10
8 1 15 15


程式應該輸出:
128


資源約定:
峰值記憶體消耗(含虛擬機器) < 256M
CPU消耗  < 2000ms




請嚴格按要求輸出,不要畫蛇添足地列印類似:“請您輸入...” 的多餘內容。


所有程式碼放在同一個原始檔中,除錯通過後,拷貝提交該原始碼。
不要使用package語句。不要使用jdk1.7及以上版本的特性。

主類的名字必須是:Main,否則按無效程式碼處理。

思路:線段數加掃描線

線段樹詳解:http://blog.csdn.net/zearot/article/details/52280189

                    https://www.cnblogs.com/AC-King/p/7789013.html

用java實現線段樹:http://blog.csdn.net/yyl424525/article/details/77859911

                              http://blog.csdn.net/Hacker_ZhiDian/article/details/79382545

線段樹加掃描線詳解:http://blog.csdn.net/u013480600/article/details/22548393

最終程式碼: