摘要: http://poj.org/problem?id=2079给定一组点集,选择三点组成三角形,且面积最大。肯定要求出这组点的凸包,接下来就不能想当然的三重循环枚举三点,这样很容易超时。这时就要用到神奇的旋转卡壳法。取凸包的三点i,j,k。先固定i,j。逆时针(当然你也可以顺时针)变换k,你会发现i,j,k三点组成的三角形面积具有单峰性。即如果第一次找到Area(i,j,k+1)<Area(i,j,k),那么此时就是在i,j固定下的形成最大面积的k点了。这样两重循环枚举i,j,时间复杂度为o(n^2)。也许有人会认为不是也要找k吗?时间复杂度为(n^3)才对。非也,如果你认真观察的话,你会 阅读全文
posted @ 2011-04-18 11:46 CoderZhuang 阅读(221) 评论(0) 推荐(0) 编辑