给定一个凸包,询问每个点距离最远的点的标号。
我们按逆时针考虑每一个点i,距离i最远的点j也是在逆时针转的。
因此我们可以把这个凸包拆成链,(把点再复制一次),每个点i合法的点的区间为[i,i+n]。其余点到i的距离为-inf。这样我们就有决策单调性了,随着i的增大j也是单增的。因此我们可以直接分治求。复杂度 O(nlog
bzoj2739 最远点(凸包+决策单调性+分治)
最新推荐文章于 2019-08-27 18:38:52 发布
给定一个凸包,询问每个点距离最远的点的标号。
我们按逆时针考虑每一个点i,距离i最远的点j也是在逆时针转的。
因此我们可以把这个凸包拆成链,(把点再复制一次),每个点i合法的点的区间为[i,i+n]。其余点到i的距离为-inf。这样我们就有决策单调性了,随着i的增大j也是单增的。因此我们可以直接分治求。复杂度 O(nlog