poj2318 TOYS 叉積性質 二分

2021-09-24 22:35:26 字數 651 閱讀 7794

乙個矩形,n(n<=5e3)個玩具,m(m<=5e3)個擋板,

問每個玩具在哪個區域,1號擋板左側為0號區域,右側為1號區域,以此類推

記向量p=(隔板的上端點->玩具),向量q=(隔板的上端點->隔板的下端點),

那麼如果q旋轉到p為逆時針,即q*p>0,說明玩具在隔板右側;

二分找到最右的隔板,滿足玩具在隔板右側即可

#include#include#include#includeusing namespace std;

const int n=5005;

struct point

//建構函式

point(int xx,int yy)

point operator-(const point a)const

}; //原序列和凸包序列

double det (point a, point b)

int n,m,x1,y1,x2,y2,x,y;

int u[n],l[n],u,l;

int cnt,num[n];

int main()

num[r]++;

} for(int i=0;iputs("");

} return 0;

}

叉積的性質 poj2318 TOYS

題目大意 給定乙個矩形,中間有n塊板把這個矩形分成n 1塊,從0開始編號。保證按照順序給出並且沒有相交。給定m個點,詢問每乙個塊內有多少個點。題目分析 對於每乙個點二分所有的線段,然後利用叉積的性質判斷它在這條線的左邊還是右邊,統計答案。時間複雜度o mlogn 水題一枚 我這種蒟蒻也就能做這種題了...

POJ 2318 TOYS 向量叉積運算

題意,給出一塊方框的左上 右下角座標,然後輸入n個擋板的兩端點座標 擋板從0 n 1 標記 再輸入m個玩具丟到框內的座標。資料保證玩具丟到框裡,且擋板已經從左到右排好序。輸出落在每塊擋板前空間內的玩具個數。類似的方法以前在杭電oj遇到過,是一道計算多邊形面積題目。當時沒有學向量積運算,所以最後只是記...

POJ 2318 TOYS(叉積 二分)

click here 題意 有乙個矩形的盒子,中間插了n個擋板,將盒子分成n 1個區域,然後給m個點,問最後每個區域落下多少個點。點不會落到擋板上 解題思路 把矩形的右邊看成第n 1個擋板。稍加分析,得到這個特點 若點 k 在擋板 i 的左邊,那麼 k 也一定在擋板 j 的左邊 i j n 1 則對...