hdu 3265 Posters 線段樹,掃瞄線

2021-08-17 10:00:42 字數 1053 閱讀 5521

題意:給你n張矩形海報,之後每張矩形之中又挖去乙個小矩形,問你n個復合矩形的面積並

思路:我們把那個挖空的小矩形變換一下,變成4個矩形

就是這樣,之後就變成了4個小矩形之後求一下面積並就好了

上**吧:

#include #include #include #include #define lson l, m , rt<<1

#define rson m+1,r,rt<<1|1

using namespace std;

const int maxn = 50000+10;

struct seg

; seg(double a,double b,double c,int d) : l(a),r(b),h(c),f(d){}

bool operator < (const seg & cmp) const

}edg[maxn<<3];

int x[maxn<<3];

struct node

ve[maxn<<2];

void pushdown(int l,int r,int rt)

else if(l == r) ve[rt].len = 0;

else

}void update(int l,int r,int l,int r,int rt,int val)

int m = (r+l)>>1;

if(l<=m)

if(r>m)

pushdown(l,r,rt);

}int main()

sort(x,x+cnt);

sort(edg,edg+cnt);

int m = unique(x,x+cnt) - x;

long long ans = 0 ;

for(int i = 0 ; i < cnt ; i++)

printf("%lld\n",ans);}}

HDU3265 掃瞄線 線段樹 區間並

傳送門 hdu3265 題意 n個海報,每個海報中間有個矩形的洞。問這n個海報覆蓋面積和是多少。分析 非常經典的題目了,掃瞄線 線段樹 進行 區間並操作 既然海報內有塊矩形不能計算入內,只要把海報分為四塊不重疊的部分就好了。重點是空間限制比較緊,交了若干次才a的。改用unsigned short 0...

HDU 2050 折線拆分平面

problem description 我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分。input 輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資料,每行包含...

HDU2050 折線分割平面

題目描述 problem description 我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資...