hdu 1542 Atlantis(求矩形面積並)

2021-09-06 11:08:11 字數 461 閱讀 6226

分別記錄x座標和y座標,將其分別按照從左到有的方向排序。然後對於乙個輸入的矩形的x,y座標範圍內的下標進行標記。以兩個相鄰的座標為最小單位分割圖形,最後求總面積。

#include#include#include#define n 205

int mark[n][n];

double a[n],b[n];

struct node

s[n];

int n;

int cmp(const void *a,const void *b)

int find(double *a,double x)

{ int l,r,mid;

l=0;

r=2*n-1;

while(l<=r)

{ mid=(l+r)/2;

if(a[mid]==x)

return mid;

else if(a[mid]

HDU 1542 Atlantis 線段樹 掃瞄線

題意 求二維座標下n個矩陣的面積並 分析 如何求矩陣並的面積呢?如下圖 我們可以利用掃瞄線來做,什麼是掃瞄線?你可以把這些矩陣合併後看做乙個容器 現在你要把這些容器注滿水 很明顯 水先充滿的地方為 更據這樣的思想就可以把原圖分為下面幾個部分惹 那麼如何用 實現呢?我們需要乙個seg結構體儲存x方向線...

面積並問題 HDU 1542 Atlantis

hdu 1542 傳送門 題目大意就是幾個矩形相交,然後求出總的覆蓋面積,覆蓋多次的按一次算。典型的面積並問題。大體思路 記錄所給的點,排序,去掉重複的點,對點編號,可以理解成存放點的陣列的下表即為編號。對y軸建立線段樹,利用線段樹計算面積。ac code 1 include 2 include 3...

HDU 1542 Atlantis 矩形面積並

題意 有 n 個矩形,求總的覆蓋面積。分析 離散化浮點數座標,以 x 軸 建樹,將每個矩形拆分成上下兩條線段,從下向上掃瞄。離散化浮點數,把矩形分成上邊和下邊,按 x 座標建樹,從下向上掃瞄 include include include include define clr x memset x,...