分析:
给出平面上的N个点,在其中找出三个点,使得其构成的三角形的面积最大。题解:
先用找出凸包上的所有点,然后一次枚举遍历即可。
1.求凸包:
int cmp(point a, point b) //水平排序
{
if(a.x==b.x)return a.y<b.y;
return a.x<b.x;
}
int convex(int n, point P[], point res[])//n为总点数,P 为点集,res为输出凸包上点的点集
{
sort(P, P+n,cmp);
int m=0,i,j,k;
//求得下凸包,逆时针
//已知凸包点m个,如果新加入点为i,则向量(m-2,i)必定要在(m-2,m-1)的逆时针方向才符合凸包的性质
//若不成立,则m-1点不在凸包上。
for(i=0;i<n;i++)
{
while(m>1&&multiply(res[m-