【模板】旋转卡壳 | [USACO03FALL] Beauty Contest G
其实凸包直径就是平面最远点对,证明见视频5:00
具体过程检OI-wiki(当然视频的证明方法更详细,利用了对踵点的概念),用双指针维护\(j\)的原因也可以看视频
注意这里枚举边,不能枚举点,因为凸包上,对于一条固定的边,按某个方向遍历点,则点到边的距离先增后减,而对于某一个固定的点,按某个方向遍历点,则点到点的距离不一定先增后减
证明:后者的反例比较容易举出,这里主要证明前者。不妨旋转凸包,直到凸包的这条固定的边与\(x\)轴重合,于是只用比较各点的\(y\)的大小,分类讨论即可。下面讨论一种情况:设三点\((x_1,y_1),(x_2,y_2),(x_3,y_3)\),其中\(x_1<x_2<x_3\),如果\(y_2\)是最小的,那么显然可以直接连接第一个点和第三个点来形成凸包,这与第二个点在凸包上矛盾

浙公网安备 33010602011771号