Description
方师傅来到了一个二维平面。他站在原点上,觉得这里风景不错,就建了一个房子。这个房子是n个点的凸多边形,原点一定严格在凸多边形内部。有m个人也到了这个二维平面。现在你得到了m个人的坐标,你要判断这m个人中有多少人在房子内部。点在凸多边形边上或者内部都认为在房子里面。
第一行一个数n,接下来n行,每行两个整数x,y。输入按照逆时针顺序输入一个凸包。
接下来一个数m,最后有m行,第一行两个整数 x,y,表示第一个人的坐标。
对于第i个询问(i>=2) ,输入两个数dx,dy。
如果上一个人在房子内部,x[i]=x[i-1]+dx,y[i]=y[i-1]+dy。否则x[i]=x[i-1]-dx,y[i]=y[i-1]-dy。
n <= 100000, m <= 200000,输入保证所有人的坐标,房屋的坐标都在[-1e9,1e9]之内。
Solution
计算几何只会凸包系列
先回顾一下什么是叉积。
如上图,我们有两个红色向量共起点。它们的叉积为 ∣ a ⃗ ∣ ∣ b ⃗ ∣ ⋅ sin θ |{\vec{a}}| |{\vec{b}}|\cdot\sin\theta ∣a∣∣b