離散化 和多維線段樹

2021-06-16 19:18:27 字數 1038 閱讀 7510

分類: 練習

2013-05-25 10:07

196人閱讀收藏

舉報 acmc

資料結構

離散化

題目大意:給出 n 個矩形的「左下」和「右上」頂點座標,求面積並;

思路:由於座標值為實數,所以不能直接用陣列模擬,要先將所有座標值離散化處理;

[cpp]view plain

copy

print?

#include

#include

#include

#include

#include

using

namespace std;

#define size 103<<1

double a[size][4],x[size],y[size];

int map[size][size];

int main()

sort(x,x+k);

sort(y,y+k);

memset(map,0,sizeof(map));

for(i=0;ifor(x1=0;x1if(x[x1]==a[i][0])

break;

} for(y1=0;y1if(y[y1]==a[i][1])

break;

} for(x2=0;x2if(x[x2]==a[i][2])

break;

} for(y2=0;y2if(y[y2]==a[i][3])

break;

} for(l=x1;lfor(j=y1;jmap[l][j]=1;

} }

} double sum=0;

for(i=0;ifor(j=0;jif(map[i][j]==1)

} }

printf("test case #%d\n",t++);

printf("total explored area: %.2lf\n\n",sum);

} return 0; }

離散化 線段樹

題目 分析 每次1操作會往序列底加first個second,first 和 second 都是最大1e9的資料,每次2操作詢問序列中第first到第second個數的和 一開始就感覺有點像線段樹,輸入資料太大我們可以離線處理把資料離散化下,然後扔到線段樹上,維護兩個陣列 sum 區間數的值的和 nu...

資料離散化 線段樹

前言 遇到了乙個矩形面積堆疊的問題,想了很久。終於找到了方法。先做個小記,待到具體問題時再分析。資料離散化 高大上的名字,其實就是對資料的一種處理,也可以採取陣列 或者 容器 map vector。之類的來儲存。之前的ibm技術俱樂部主席競選 那道題其實就是很好的應用。有些資料本身很大,自身無法作為...

紙帶 線段樹 離散化

題目大意 每次給一段區間染色,求最後整個區間有多少種顏色 分析 用膝蓋想也知道這題線段樹可以輕鬆水過,於是出題人靈機一動,挖了個深坑,每次給的區間是左開右閉的,但題目沒說,他給了你一張圖,你們可以感受一下 於是正解wa成0分我也是很絕望的。有一點要注意一下,離散化後有些區間會並在一起,原來中間的顏色...