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

2021-07-30 13:52:34 字數 1051 閱讀 8515

這道題據說是noip哪年哪道題???

被各大省講爛了???

首先大致思路如上所示:以乙個點代表其右上的乙個單位。這個單位矩形的某種不可名狀性質如右上所示。這樣,陣列xy[c][c]就代表了c+1到c這個小矩形是否被覆蓋了,然後我們在塗點的時候就塗少乙個單位,這樣小矩形合起來剛好就能代表整個大矩形,然後我們用這個方法求出所有覆蓋面積(就是一群矩形);

但是呢這道題的重點其實是在離 散 化

離散化的**相信很容易就能從下列**中被識別出來,具體方式就是利用對映陣列,將元素對映為下標

其實後來發現這道題很容易= =可能是我搞的時間略長,,

題目:

#include// by: chorolop

#include#include#includeusing namespace std;

double x[300],y[300],xy[300][300],ans;

double s[300][4];

int n,k = 1;

void _init()

int main()

sort(x+1,x+k);

sort(y+1,y+k);

for(int i = 1;i <= n;i++)

for(int px = 0;px <= k;px++)

for(int py = 0;py <= k;py++)

ans += xy[px][py] * (x[px+1]-x[px]) * (y[py+1]-y[py]);

printf("%.2lf\n",ans);

scanf("%d",&n);

} return 0;

}

CODEVS 3044 矩形面積求並

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

CodeVS3044矩形面積求並

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

codevs3044 矩形面積求並

這幾天入了資料結構的坑,其實簡單的線段樹 樹狀陣列 左偏樹之類的以前就會的,但是不是很會應用,特別是例如優化dp 擴充套件到高維這些應用上就是渣啊,因為之前對離散化不了解,所以看了hwzer的 好久都沒懂,到最後發現原來這個線段樹維護的並不是乙個數軸,只是乙個陣列而已,乙個陣列有被標記的元素,然後用...