题解 P3829 【[SHOI2012]信用卡凸包】

ShineEternal

2019-08-16 11:02:11

Solution

节选自:[vercont的一篇洛谷日报](https://45475.blog.luogu.org/convex-hull) ### 题目链接: [P3829 [SHOI2012]信用卡凸包](https://www.luogu.org/problem/P3829) 是一道上海的省选题,不过并不难。 ### 题意简叙: ![](https://cdn.luogu.com.cn/upload/pic/6549.png) 给你一堆如上图所示的卡片,求其凸包周长(凸包可以包含圆弧) ### 分析: **我主要是来对那个转换画图说明一下,不然有些人可能云里雾里** 我们可以先来考虑$r=0$的情况。 发现$r=0$即为信用卡为矩形,于是就按照正常的思路将点列出跑Graham算法即可。 --- 然后开始想正解 因为样例三是最普遍的情况,所以研究一下: ![](https://i.loli.net/2019/08/15/kVngAqUotbxI4RY.png) 首先带有圆弧的凸包不好处理呢。 于是我们把每一个被磨圆的顶角往圆心里看,再重新构造凸包,然后发现黑色内圈与绿蓝外圈有重叠部分。 再分解一下,如红笔。 **发现恰好多出4个$\frac{1}{4}$圆弧,也就是一个圆** 再验证几个发现也是对的。 于是这个问题就转换为裸的凸包模板了。 #### 这种题目里面都告诉凸包了,关键在于怎么转换,不然生搬硬套,很难得分