`
javababy1
  • 浏览: 1171119 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

凸包算法(二)--凸包面积

 
阅读更多

凸包面积算法

1.选取p0作为y坐标最小的点,如果y坐标相等,选取x坐标最小的点

2.对剩余的点相对与p0点的极角进行排序

(比较叉积<http://blog.csdn.net/liufei_learning/archive/2010/10/14/5941947.aspx>

3.去除极角相等的点,即距离最远的点

4.初始化堆栈

5.折线段拐向判断,若没有左转的时候出栈点,否则入栈

6.根据已有的点计算面积

凸包面积

Time Limit: 1000MS Memory Limit: 65536KB

Submissions: 38 Accepted: 10

Description

麦兜是个淘气的孩子。一天,他在玩钢笔的时候把墨水洒在了白色的墙上。再过一会,麦兜妈就要回来了,麦兜为了不让妈妈知道这件事情,就想用一个白色的凸多边形把墙上的墨点盖住。你能告诉麦兜最小需要面积多大的凸多边形才能把这些墨点盖住吗?现在,给出了这些墨点的坐标,请帮助麦兜计算出覆盖这些墨点的最小凸多边形的面积。

Input

多组测试数据。第一行是一个整数T,表明一共有T组测试数据。每组测试数据的第一行是一个正整数N(0< N < = 105),表明了墨点的数量。接下来的N行每行包含了两个整数Xi和Yi(0<=Xi,Yi<=2000),表示每个墨点的坐标。每行的坐标间可能包含多个空格。

Output

每行输出一组测试数据的结果,只需输出最小凸多边形的面积。面积是个实数,小数点后面保留一位即可,不需要多余的空格。

Sample Input

2

4

0 0

1 0

0 1

1 1

2

0 0

0 1Sample Output

1.0

0.0

Hint

Source

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics