hdoj 4709 Herding

来源:互联网 发布:思维导图下载 mac 编辑:程序博客网 时间:2024/06/05 20:19

Herding(链接)

Sample Input
14-1.00 0.000.00 -3.002.00 0.002.00 2.00
 

Sample Output
2.00
 

题意:求给出的n个点可以构成最小的三角形面积
#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;//定义点struct point{    double x;    double y;}a[110];//利用叉积求三角形面积 S=1/2ab*sin(C)double cross(point A,point B,point C){    return fabs((B.x - A.x) * (C.y - A.y) - (C.x - A.x) * (B.y - A.y)) / 2;}int main(){    int i,j,k,m,n,t;    scanf("%d",&t);    while(t--)    {        double ans = 1e10;        scanf("%d",&n);        for(i=0;i<n;i++)        {            scanf("%lf%lf",&a[i].x,&a[i].y);        }//暴力求解        for(i=0;i<n;i++)        {            for(j=i+1;j<n;j++)            {                for(k=j+1;k<n;k++)                {                    if(cross(a[i],a[j],a[k])<1e-10)                        continue;                    else if(cross(a[i],a[j],a[k])<ans)                        ans = cross(a[i],a[j],a[k]);                }            }        }        if(ans == 1e10)            printf("Impossible\n");        else            printf("%.2lf\n",ans);    }    return 0;}


原创粉丝点击