zoukankan      html  css  js  c++  java
  • hdu 4709 Herding hdu 2013 热身赛

      题意:给出笛卡尔坐标系上 n 个点,n不大于100,求出这些点中能围出的最小面积。

      可以肯定的是三个点围成的面积是最小的,然后就暴力枚举,计算任意三点围成的面积。刚开始是求出三边的长,然后求面积,运算步骤多,超时鸟~~,后来看了别人的代码,计算步骤挺少啊,不过我不会推这个式子。

    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    
    struct node{
        double x,y;
    };
    node point[105];
    const double  inf = 99999999;
    
    double Deal(node a,node b,node c)
    {
        return ((b.x - a.x) * (c.y - a.y) - (b.y - a.y)*(c.x - a.x))/2;
    }
    int main()
    {
        int T,n;
        scanf("%d",&T);
        while(T--)
        {
            double ans=inf;
            bool flag=false;
            scanf("%d",&n);
            for(int i=0;i<n;i++)    scanf("%lf%lf",&point[i].x,&point[i].y);
            for(int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                    if(j!=i)
                        for(int k=0;k<n;k++)
                            if(k!=j && k!=i)
                            {
                                double  tmp=Deal(point[i],point[j],point[k]);
                                if(tmp<0) tmp=-tmp;
                                if(tmp < ans && tmp != 0.0)
                                {
                                    ans = tmp;
                                    flag = true;
                                }
                            }
            if(flag)  printf("%.2lf
    ",ans);
            else    printf("Impossible
    ");
        }
        return 0;
    }
  • 相关阅读:
    JAVA课程设计——飞机大战(团队)
    面向对象设计大作业
    OO之接口-DAO模式代码阅读及应用
    有理数类设计
    图总结
    树、二叉树、查找算法总结
    二叉排序树
    数据结构小结
    C语言文件
    小程序云开发:联表查询去重及排序的不严谨笨办法
  • 原文地址:https://www.cnblogs.com/yongren1zu/p/3308906.html
Copyright © 2011-2022 走看看