矩形面積k次交 UVA 11983

2022-01-10 23:39:19 字數 1330 閱讀 4522

算是模板題,會了面積交這個應該就會了,正常面積交分為覆蓋1次以上,兩次以上,這個就分為覆蓋1到k次以上就行了。

這個題有點邊界問題:是讓你求覆蓋的點,所以你可以假設乙個1*1的正方向表示它的左下角被覆蓋,那你讀入x2,y2時就讓x2++,y2++。這樣直接算面積就處理好邊界了。

#include#include

#include

#include

#define ll long long

#define rep(i, a, b) for(int i = a; i <= b; i++)

#define ls num*2

#define rs num*2+1

using

namespace

std;

const

int maxn = 3e5 + 1010

;int

k;ll loc[maxn*2

];struct

seg}line[maxn*2

];struct

nodep[maxn*4

];void build(int num, int l, int

r);

if(l == r) return

;

int mid = (l+r)/2

; build(ls, l, mid);

build(rs, mid+1

, r);

}void pushup(int

num)

}else

}}void change(int num, ll ul, ll ur, int

x) change(ls, ul, ur, x);

change(rs, ul, ur, x);

pushup(num);

}int

main();

loc[++pos] =x2;

line[pos] = (seg);

}n *= 2

; sort(line+1, line+1+n);

sort(loc+1, loc+1+n);

int num = unique(loc+1, loc+1+n) - loc - 1

; build(

1, 1, num-1

); ll ans = 0

; rep(i,

1, n-1

) printf(

"case %d: %lld\n

",++cas, ans);

}return0;

}

矩形面積交

時間限制 1.0s 記憶體限制 512.0mb 問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個...

矩形面積交

問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10 7的實數表示。輸出格式 輸出僅...

矩形面積交

問題描述 平面上有兩個矩形,它們的邊平行於直角座標系的x軸或y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。輸入格式 輸入僅包含兩行,每行描述乙個矩形。在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10 7的實數表示。輸出格式 輸出僅...