题目:Hdu1392 Surround the Trees
image.png
image.png
简易描述:在坐标上求能将所有点都包上的点集,并计算他们的长度
算法步骤:
original[102]指原始输入的数据的数组。
Convex [102]在凸包上的点的数组。
1、首先判断如果original中元素个数,如果是1,2单独处理,否则进入2。
2、选出最左下角的元素,将original数组按y坐标排序,得到Convex[0]=original[0]。
3、将original[]剩下的n-1个元素按极角进行排序(相对于Convex[0]的arctan值)。
4、Convex[]中初始时有两个元素,Convex[0]和Convex[1](最小的极角那个点一定在凸包上)。
5、写一个while,终止条件为扫描original到最后一个点。具体while操作见6。
6、取Convex[]最后两个元素,与当前original[i]进行叉积判断,如果三点是逆时针方向则original[i]加入到Convex[]。
否则将Convex[]最后一个元素删掉(因为不满足),将origi