zoukankan      html  css  js  c++  java
  • UVa10674

    wa好几次。

    讨论版所有数据都没问题- -

    最后发现是用于排序而重载的<运算符函数精度不够,导致误差

    bool operator < (const Point& a, const Point& b) {                                                          
      //return a.x < b.x || (a.x == b.x && a.y < b.y);
      return dcmp(a.x-b.x) < 0 || (dcmp(a.x-b.x) == 0 && dcmp(a.y-b.y) < 0);
    }

    对于题目中要求的排序规则,我是用:

    vector < pair<Point, Point> > v;
    
    for ( i = 0; i < cnt; ++i ) v.push_back ( make_pair(a[i], b[i]) );
    sort ( v.begin(), v.end() );

    对于求两点间距离,可以用 求向量长度的函数 去求:

    double Length(const Vector& A) { return sqrt(Dot(A, A)); }

    调用如下:

    for ( i = 0; i < cnt; ++i ) printf ( "%.5lf %.5lf %.5lf %.5lf %.5lf
    ", v[i].first.x, v[i].first.y, v[i].second.x, v[i].second.y, Length(v[i].first-v[i].second) );
  • 相关阅读:
    程序员修炼之道:从小工到专家有感2
    3月13日
    第一次结对作业(2)
    3月12日
    3月11日
    第一次结对作业
    3月10日
    11月6日
    10月28日
    10月7日
  • 原文地址:https://www.cnblogs.com/Accoral/p/3140367.html
Copyright © 2011-2022 走看看