【bzoj_1069】[SCOI2007]最大土地面积

首先吐槽bzoj不厚道,不能看部分分。。然后因为精度问题蛋疼了一下午

类似旋转卡壳的做法

先求凸包

枚举所有点i作为这个四边形的一个顶点。

然后按照逆时针顺序枚举每个点j,使得点i,j作为矩形的对角线

然后可以发现,这样的话直线i,j的斜率是先单调增后单调减的。然后我们平移这个对角线,类似找对重点对的做法(错别字QAQ

然后我们发现对重点也是递增的。。然后维护一个当前指针就爽了

几个关键的地方:

1.计算对重点是不是往前走的时候要注意,如果面积大于或相等都要向前走。要是相等不走的话可能一直卡在某个位置。

2.注意因为求出来的凸包是一个环形的,所以注意取余。。当然开始的时候直接复制一遍也可以哦

3.卡精度!eps设置成10-9就能过了。。。好坑

算法的正确性显然?因为旋转卡壳求对重点对的时候跟这个做法一模一样

posted @ 2015-06-13 18:43  清羽晨风  阅读(120)  评论(0编辑  收藏  举报