離散化練習 Codevs3044矩形面積求並

2021-06-26 19:42:45 字數 670 閱讀 9160

題目描述 description

輸入n個矩形,求他們總共占地面積(也就是求一下面積的並)

輸入描述 input description

可能有多組資料,讀到n=0為止(不超過15組)

每組資料第一行乙個數n,表示矩形個數(n<=100)

接下來n行每行4個實數x1,y1,x2,y1(0 <= x1 < x2 <= 100000;0 <= y1 < y2 <= 100000),表示矩形的左下角座標和右上角座標

輸出描述 output description

每組資料輸出一行表示答案

樣例輸入 sample input

210 10 20 2015 15 25 25.50

樣例輸出 sample output

180.00

對於 這個題,如果資料範圍小的話當然可以採用對點染色的方法計算面積,但是100個矩形,100000×100000,15組資料下這種做法是一定會超時的。

於是我們想到對這個題進行離散,離散出來矩形的各個點的橫座標縱座標,將其分割,最後進行並運算。 

#includeusing namespace std;

#include#include#include#includebool p[201][201];

main()

for(i=0;++i紀念離散第一題。

Codevs 3044 矩形面積求並(離散化)

這道題據說是noip哪年哪道題?被各大省講爛了?首先大致思路如上所示 以乙個點代表其右上的乙個單位。這個單位矩形的某種不可名狀性質如右上所示。這樣,陣列xy c c 就代表了c 1到c這個小矩形是否被覆蓋了,然後我們在塗點的時候就塗少乙個單位,這樣小矩形合起來剛好就能代表整個大矩形,然後我們用這個方...

CODEVS 3044 矩形面積求並

描述 輸入n個矩形,求他們總共占地面積 也就是求一下面積的並 分析 其實上面的部落格講的講的就很清楚了.就相當於把矩形用許多小矩形來代替.這些小矩形都是有一邊或幾條邊延長後過其他矩形的頂點.這麼一說好像更複雜了.換個說法,就是把所有矩形的邊都作為可無限延長的分割線,將所有矩形分割成小矩形.每個小矩形...

CodeVS3044矩形面積求並

codevs3044矩形面積求並 題解 題目描述 description 輸入n個矩形,求他們總共占地面積 也就是求一下面積的並 輸入描述 input description 可能有多組資料,讀到n 0為止 不超過15組 每組資料第一行乙個數n,表示矩形個數 n 100 接下來n行每行4個實數x1,...