算是模板題,會了面積交這個應該就會了,正常面積交分為覆蓋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的實數表示。輸出格式 輸出僅...