將第乙個點向其他各點連邊,那麼就有n-1條線段,組成n-2個三角形。
然後二分那個點在哪個三角形內,通過差積判斷左右。
最後再判斷是否在裡面,注意邊界問題。
然後我發現我二分sb了,對於這種可能無解的問題,應該先特判或初值個特殊情況。
code:
#include
#include
#include
#include
#include
using
namespace
std;
struct pointa[100010];
double multi(point p1,point p2,point p0)
int n,m;
int main()
if(multi(a[i],p,a[1])<0||(i==n&&multi(a[i],p,a[1])>0))
if(i==n)
if(multi(a[i],p,a[i+1])<=0) ty=true,ans++;
else ty=false;
}printf("%d",ans);
}
bzoj5008 方師傅的房子
description 方師傅來到了乙個二維平面。他站在原點上,覺得這裡風景不錯,就建了乙個房子。這個房子是n個點的凸多邊形 原點一定嚴格在凸多邊形內部。有m個人也到了這個二維平面。現在你得到了m個人的座標,你要判斷這m個人中 有多少人在房子內部。點在凸多邊形邊上或者內部都認為在房子裡面。input...
刷題 BZOJ 5008 方師傅的房子
方師傅來到了乙個二維平面。他站在原點上,覺得這裡風景不錯,就建了乙個房子。這個房子是n個點的凸多邊形 原點一定嚴格在凸多邊形內部。有m個人也到了這個二維平面。現在你得到了m個人的座標,你要判斷這m個人中 有多少人在房子內部。點在凸多邊形邊上或者內部都認為在房子裡面。第一行乙個數n,接下來n行,每行兩...
bzoj3595 方伯伯的oj
有 n 個數,一開始是 1 n 有 m 次操作 1.把編號為 x 的人編號改為 y 保證 y 沒出現過 2.把編號為 x 的人提到第一名 3.把編號為 x 的人懟到最後一名 4.查詢排名為 x 的人的編號 初始每個人的排名 他的編號 sol 考慮線段樹,在葉子維護乙個值 v 表示這個點上的編號是多少...