【bzoj_1069】[SCOI2007]最大土地面积
首先吐槽bzoj不厚道,不能看部分分。。然后因为精度问题蛋疼了一下午
类似旋转卡壳的做法
先求凸包
枚举所有点i作为这个四边形的一个顶点。
然后按照逆时针顺序枚举每个点j,使得点i,j作为矩形的对角线
然后可以发现,这样的话直线i,j的斜率是先单调增后单调减的。然后我们平移这个对角线,类似找对重点对的做法(错别字QAQ
然后我们发现对重点也是递增的。。然后维护一个当前指针就爽了
几个关键的地方:
1.计算对重点是不是往前走的时候要注意,如果面积大于或相等都要向前走。要是相等不走的话可能一直卡在某个位置。
2.注意因为求出来的凸包是一个环形的,所以注意取余。。当然开始的时候直接复制一遍也可以哦
3.卡精度!eps设置成10-9就能过了。。。好坑
算法的正确性显然?因为旋转卡壳求对重点对的时候跟这个做法一模一样