給出n個點。和乙個w*h的矩形
給出n個點的座標,求該矩形最多能夠覆蓋多少個點
對每乙個點point(x。y)右邊生成相應的點(x+w,y)值為-1;
縱向建立線段樹,從左到右掃瞄線掃一遍。遇到點則用該點的權值更新區間(y,y+h)
#include "stdio.h"
#include "string.h"
#include "algorithm"
using namespace std;
struct mark
mark[30010];
struct node
data[200010];
bool cmp(mark a, mark b)
int max(int a,int b)
data[k].x=max(data[k*2].x,data[k*2+1].x);
}int main()
printf("%d\n",ans);
}return 0;
}
hdu5091(掃瞄線 線段樹)
題意 給n個點,和長w寬h的矩形,問矩形最多能包含多少個點。思路 掃瞄線 線段樹,首先將座標轉化成非負數,對於每個點 x,y 標記為1,生成乙個 x w,y 的點,標記為 1,然後將y軸建立線段樹,維護乙個最大值即可。如不不明白的話,畫個圖,理解一下就好了。如下 include include in...
HDU 5091 掃瞄線 線段樹優化
做法,將讀入的每個點 x,y 看做乙個以該點為左上角寬w高h的矩形,然後將矩形看做兩條平行y軸 起點y h,終點y 線,橫座標分別為 x x w 然後可用經典的掃瞄線演算法求解該題,即找出所有矩形重疊的最多次數,即所求值 證明 都在乙個矩形內的點必定他們的上述規定的矩形都兩兩相交,而矩形兩兩相交必然...
hdu4007 線段樹掃瞄線
用變長為r的正方形最多能框住幾個點,線段樹,離散化,掃瞄線,延時標記lz include include include include include define n 2005 define inf 1 30 const double eps 1e 12 const double pi acos...