bzoj 5008 方師傅的房子

2021-08-07 19:28:58 字數 604 閱讀 4809

將第乙個點向其他各點連邊,那麼就有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 表示這個點上的編號是多少...