题目大意
在一个凸包里,找一个点$p$,使得该点与$\{k,k+1,k\in(1,n-1)\}$组成的三角形面积大于和$\{0,1\}$组成的三角形面积.
解析
首先,我们考虑点的取值范围.
必定在凸包内以及凸包的边界上.
用线性规划半平面交表示即为:每个边所在直线的左半边区域交集.
再考虑,三角形面积关系:
$\overrightarrow{(x_1-x,y_1-y)}\times\overrightarrow{(x_0-x,y_0-y)}\leq\overrightarrow{(x_{k+1}-x,y_{k+1}-y)}\times\overrightarrow{(x_k-x,y_k-y)}$
然后一堆化简整理之后:
$(y_1-y_0-y_{k+1}+y_k)x+(x_0-x_1-x_k+x_{k+1})y+(x_1y_0-x_0y_1-x_{k+1}y_k+x_ky_{k+1})\ge 0$
一个形如$ax+by+c\ge 0$的式子就写出来了.
对于一个形如上述的式子,该直线的向量为$(b,-a)$,根据这个就可以用两点式表示直线.
然后对于$k\in\{1,n-1\}$的点,都求一次直线.
再与上面的直线求半平面交.得到符合条件的解即可.
1 |
|