Hdoj 2671 Can't be easier

来源:互联网 发布:西电网络信息安全学院 编辑:程序博客网 时间:2024/05/29 16:04

Hdoj 2671 Can’t be easier

这里写图片描述
简单的数学问题:
如果两点异侧直接求距离,同侧则先求出其中一点的对称点后用距离公式

#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#include<cctype>#include<cstring>#include<cstdlib>using namespace std;double distance(double x1,double y1,double x2,double y2){    return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}int main(){    int t;    cin>>t;    while(t--)    {        double ax,ay,bx,by,cx,cy,k,l;        double x1,y1,ans;        cin>>k;        cin>>ax>>ay>>bx>>by>>cx>>cy;        if((k*ax-ay-k*cx+cy)*(k*bx-by-k*cx+cy)>0)        {            /* 不同侧求对称点 */         y1=(2*bx*k+by*k*k-by-2*k*cx+2*cy)/(k*k+1);            x1=bx-(y1-by)*k;                                ans=distance(ax,ay,x1,y1);        }        else             ans=distance(ax,ay,bx,by);             printf("%.2lf\n",ans);    }    return 0;}
原创粉丝点击