您的位置:首页 > 其它

[BZOJ]1069: [SCOI2007]最大土地面积 计算几何

2014-01-03 10:29 246 查看

Description

在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大。

Input

第1行一个正整数N,接下来N行,每行2个数x,y,表示该点的横坐标和纵坐标。

Output

最大的多边形面积,答案精确到小数点后3位。

Sample Input

5

0 0

1 0

1 1

0 1

0.5 0.5

Sample Output

1.000

HINT

数据范围 n<=2000, |x|,|y|<=100000

记得前几天ZGS就喊看计算几何,可惜一直浪,没看,昨天考着了,不过数据卡的不紧,YY了个n^2logn都过了,感觉凸包和斜率优化基本一样,会斜率优化就能写出来。

对于这道题,肯定这四个点再凸包上,然后我们枚举四边形的对角线,将四边形面积拆成两个三角形面积。我们发现,因为剩下的两个点都在凸包上,所以如果我们由左到右顺序枚举每个点,那构成的三角形面积的图像一定是一个单峰函数,然后果断三分,考场上卡到一秒过,不过下来测是0.8左右,估计评测机太渣了。

然后这里有一个很有用的优化。我们发现,在枚举对角线时,三角形另一个点的最优位置一定也是递增的,所以时间复杂度可以优化到n^2,似乎这个名字叫旋转卡壳。。。

我的代码太丑了,就不贴了^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  凸包 旋转卡壳