zoukankan      html  css  js  c++  java
  • hdu 4709 herding 2013 杭电warm up 1004

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4709 

    可以证明,三角形是最小的。

    直接计算三角形面积,取最小的的,Impossible的情况特判就行。

    计算三角形面积用向量叉积。

    代码:

    #include<iostream>
    #include<algorithm>
    #include<cmath>
    #include<vector>
    #include<cstdio>
    using namespace std;
    
    struct point
    {
        double x;
        double y;
    
    };
    
    
    double area(point A,point B,point C)
    {
       double abx=B.x-A.x;
       double aby=B.y-A.y;
    
       double acx=C.x-A.x;
       double acy=C.y-A.y;
    
       double ans=(abx*acy-acx*aby)/2;
    
       return fabs(ans);
    }
    int main()
    {
       int T;
       int n;
       cin>>T;
       while(T--)
       {
          cin>>n;
          point p[n];
          double x,y;
          for(int i=0;i<n;i++)
          {
          scanf("%lf %lf",&x,&y);
    
          p[i].x=x;
          p[i].y=y;
          }
          vector<double> v;
          for(int i=0;i<n;i++)
            for(int j=i+1;j<n;j++)
              for(int k=j+1;k<n;k++)
               {
                 v.push_back(area(p[i],p[j],p[k]));
               }
    
    
           sort(v.begin(),v.end());
           double ans=0;
           for(int i=0;i<v.size();i++)
             if(v[i]!=0)
             {
                 ans=v[i];
                 break;
             }
           if(ans==0)  cout<<"Impossible"<<endl;
           else printf("%.2lf
    ",ans);
       }
    }
    

     

  • 相关阅读:
    近期目标
    HDU
    BZOJ
    UVALive
    UVA
    HNOI2004 宠物收养所 (平衡二叉树)
    UVA
    HDU
    POJ
    康托展开与逆康托展开模板(O(n^2)/O(nlogn))
  • 原文地址:https://www.cnblogs.com/814jingqi/p/3310425.html
Copyright © 2011-2022 走看看