首页 > 其他分享 >[USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包

[USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包

时间:2024-08-01 09:07:33浏览次数:8  
标签:wiki Fencing 保留 USACO5.1 算法 先求 凸包

凸包,顾名思义,就是凸多边形包围,具体定义见OI-wiki(既是周长最小也是面积最小)

有Graham算法和Andrew算法,后者精度更高常数更小(因为不涉及求角度)

Andrew算法:

1.将点排序(横坐标为第一关键字,纵坐标为第二关键字)

2.从左到右维护上半部分,再从右到左维护下半部分。具体见OI-wiki。最后说的“不需要保留位于凸包边上的点”,这个要看题目要求,如果要求保留那就要保留,不是一定不用保留

严格证明好像不太会。另外,按照这种排序方式,先求上凸壳还是先求下凸壳是matter的,但是为啥想不出来,可以看看acwingY总的代码和洛谷的讨论,去想一下他们为什么会出现问题,以及为什么我们不会出现问题

标签:wiki,Fencing,保留,USACO5.1,算法,先求,凸包
From: https://www.cnblogs.com/dingxingdi/p/18335928

相关文章

  • Andrew 算法求凸包
    Andrew算法求凸包参考资料:右手定则(baidu.com)内积和外积-OIWiki(oi-wiki.org)\(a\)与\(b\)相对位置\(b\)在\(a\)的逆时针方向:\(a\timesb>0\)顺负逆正(其实就是高中数学对于正负角的定义)凸包-OIWiki(oi-wiki.org)排序后最小和最大的元素为什么一......
  • 【Unity】凸包算法对比及实现
    背景在做闵可夫斯基差的可视化的时候,获得了很多个点,想要知道其是否包含原点,需要连接一个包裹这些点的最小凸多边形。因此就单独研究了这个部分,实现了功能并进行分析对比。凸包算法可以在多个散落的点中找到最小能包裹它的外壳,像套上一个橡皮筋一样。这里主要采用Graham算法进行代......
  • P1355 神秘大三角(凸包)
    P1355神秘大三角-洛谷|计算机科学教育新生态(luogu.com.cn)队友推荐的,算是入门凸包,就是用叉积判断一下点是否相对每条边都在凸包的边的左侧。1#include<bits/stdc++.h>23usingnamespacestd;45#definelllonglong67constintN=1e3+10;......
  • 凸包 学习笔记
    1前置知识1.1三角函数1.2向量四则运算2凸包2.1凸包定义2.2Graham扫描法2.3相关例题IFencingthecowsII信用卡凸包III防线修建......
  • 机器视觉学习(十一)—— 最小矩形和圆形区域、近似轮廓、凸包
    目录一、最小矩形区域与最小圆形区域 1.1 cv2.minAreaRect()函数1.2 cv2.minEnclosingCircle()函数1.3 最小矩形区域与最小圆形区域示例二、显示近似轮廓2.1 cv2.approxPolyDP()函数2.2显示近似轮廓示例代码2.2.1简约版 2.2.2 进阶版 三、显示凸包3.1 ......
  • pcl 凸包ConvexHull
    pcl凸包ConvexHull头文件等#include<pcl/surface/convex_hull.h>typedefpcl::PointXYZPointT;typedefpcl::PointCloud<PointT>CloudT;typedefCloudT::PtrCP代码CPPSO::tubao(CPcloud){ pcl::ConvexHull<PointT>hull; hull.setInputCloud(clou......
  • P2742 [USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包
    原题链接题解这么优质的文章我写什么题解好难解释必然性感觉像模拟??code#include<bits/stdc++.h>usingnamespacestd;intq[100005]={0};structnode{doublex,y;}a[100005];doubledis(intb,intc){nodei=a[b],j=a[c];returnsqrt((i.x-j.x)*(i.x-......
  • P6810 「MCOI-02」Convex Hull 凸包 题解
    分析推式子题。\[ans=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\tau(i)\tau(j)\tau(\gcd(i,j))\]对于\((i,j)\),若\(k\)是\((i,j)\)的因子,则\(k\)一定整除\(i,j\),所以有:\[\\\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\tau(i)\tau(j)\sum\limits......
  • 关于一种维护凸包的根号数据结构
    本文介绍了笔者由一道题的根号做法受到启发,独自摸索出来的一个数据结构。由于笔者能力和精力有限,无法查找已有的资料,如果有哪位巨已经提出来了记得踩我一脚。介绍这个数据结构维护凸包,支持以下操作:\(O(\sqrt{n})\)在线加入/删除任意一条线段\(O(\sqrt{n}\log\sqrt{n})\)在......
  • 凸包学习笔记
    凸包一般通过证明或观察出斜率有单调性于是可以用凸包维护。P5155[USACO18DEC]BalanceBeamP题意:有长为\(n\)的序列,每次等概率向左右移动一格,也可以结束并获得当前位置上的值,求每个位置的最大期望收益。思路:完全不懂期望!首先有一个结论,在\([0,L]\)上的\(x\)处,每次等概率向......