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

· · 题解

节选自:vercont的一篇洛谷日报

题目链接:

P3829 [SHOI2012]信用卡凸包

是一道上海的省选题,不过并不难。

题意简叙:

给你一堆如上图所示的卡片,求其凸包周长(凸包可以包含圆弧)

分析:

我主要是来对那个转换画图说明一下,不然有些人可能云里雾里

我们可以先来考虑r=0的情况。

发现r=0即为信用卡为矩形,于是就按照正常的思路将点列出跑Graham算法即可。

然后开始想正解

因为样例三是最普遍的情况,所以研究一下:

首先带有圆弧的凸包不好处理呢。

于是我们把每一个被磨圆的顶角往圆心里看,再重新构造凸包,然后发现黑色内圈与绿蓝外圈有重叠部分。

再分解一下,如红笔。

发现恰好多出4个\frac{1}{4}圆弧,也就是一个圆

再验证几个发现也是对的。

于是这个问题就转换为裸的凸包模板了。

这种题目里面都告诉凸包了,关键在于怎么转换,不然生搬硬套,很难得分