hdu 4717 The Moving Points(三分法)

2014-11-23 22:37:25 ? 作者: ? 浏览: 3
大致题意:给定 n 个起点的二维坐标和速度的大小和方向;问在哪一时刻所有两点间的最大距离最小。
// Time 78 ms; Memory 1316K  

#include  
#include  
#include  
#define maxn 50000  
#define maxm 305  
#define sqr(x) ((x)*(x))  
#define eps 1e-5  
  
using namespace std;  
  
double a[maxn],b[maxn],c[maxn];  
int cas,cnt;  
  
int sig(double x)  
{  
    return (x>eps)-(x<-eps);  
}  
  
typedef struct point  
{  
    double x,y;  
    point(double xx=0,double yy=0):x(xx),y(yy){}  
}vector;  
  
point pt[maxm];  
vector vt[maxm];  
  
vector operator - (point p,point q)  
{  
    return vector(p.x-q.x,p.y-q.y);  
}  
double dot(vector p,vector q)  
{  
    return p.x*q.x+p.y*q.y;  
}  
double cal(double t)  
{  
    double tmp,res=a[0]*t*t+b[0]*t+c[0];  
    for(int i=1;i0)  
        {   
            m1=l+(r-l)/3;m2=r-(r-l)/3;  
            if(cal(m1) 
  


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: