平面上有$n$个点,问你存在多少组四个点围成的四边形包含一个点。
所有情况$nC_{n-1}^4$ ,考虑不存在的情况,即不再四边形里的情况。枚举包含的那个点$p$,对于一个四边形外的点一定有一个最上面的点和最下面的点。再枚举四边形中离他最下面的点$x$,即$xp$这条直线中,在其上面的点任意选三个就可$x$组成四边形(可以想象最其中斜率(极角排序之后的点)最大)。
- 这一个步骤可以用极角排序,用双指针维护这个可行区间。
代码
1 |
|
平面上有$n$个点,问你存在多少组四个点围成的四边形包含一个点。
所有情况$nC_{n-1}^4$ ,考虑不存在的情况,即不再四边形里的情况。枚举包含的那个点$p$,对于一个四边形外的点一定有一个最上面的点和最下面的点。再枚举四边形中离他最下面的点$x$,即$xp$这条直线中,在其上面的点任意选三个就可$x$组成四边形(可以想象最其中斜率(极角排序之后的点)最大)。
1 |
|