【模板】旋转卡壳 | [USACO03FALL] Beauty Contest G

其实凸包直径就是平面最远点对,证明见视频5:00

具体过程检OI-wiki(当然视频的证明方法更详细,利用了对踵点的概念),用双指针维护j的原因也可以看视频

注意这里枚举边,不能枚举点,因为凸包上,对于一条固定的边,按某个方向遍历点,则点到边的距离先增后减,而对于某一个固定的点,按某个方向遍历点,则点到点的距离不一定先增后减

证明:后者的反例比较容易举出,这里主要证明前者。不妨旋转凸包,直到凸包的这条固定的边与x轴重合,于是只用比较各点的y的大小,分类讨论即可。下面讨论一种情况:设三点(x1,y1),(x2,y2),(x3,y3),其中x1<x2<x3,如果y2是最小的,那么显然可以直接连接第一个点和第三个点来形成凸包,这与第二个点在凸包上矛盾

posted @   最爱丁珰  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示