首页 > 其他分享 >PIPOJ 最短距离

PIPOJ 最短距离

时间:2023-01-12 20:44:43浏览次数:64  
标签:Case u1 样例 u2 PIPOJ 短距离 y1 y2

题目描述

小王和小明是好朋友,两人最开始各有一个初始位置 p 和一个恒定速度 v,从0时刻起开始,他们从初始位置以恒定速度开始行走,请告诉我行走过程中两人的最短距离是多少。

输入

第一行输入T代表测试样例数目。
对于每个样例,

第一行包含四个整数 x1,y1,x2,y2,表示人的起点(x1,y1),(x2,y2)。

第二行是四个整数u1,v1,u2,v2,表示人的初始速度(u1,v1),(u2,v2)(分别为x轴和y轴方向的分速度)。

T <= 1000 , x1,y1,x2,y2,u1,v1,u2,v2的绝对值不大于1000。

输出

对于每个样例,输出一行。"Case i: d"。i 代表案例编号,d代表答案,四舍五入到小数点后6位。

样例输入

5
1 1 2 2
1 1 2 2

1 1 2 2
1 1 -1 -1

1 1 2 2
0 1 0 -1

1 1 1 1
1 1 2 2

0 0 0 1
0 1 1 0

样例输出

Case 1: 1.414214
Case 2: 0.000000
Case 3: 1.000000
Case 4: 0.000000
Case 5: 0.707107
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    double x1,x2,y1,y2,u1,u2,v1,v2;
    cin>>n;
    int i=1;
    double ans=0;
    while(n--){
        cin>>x1>>y1>>x2>>y2;
        cin>>u1>>v1>>u2>>v2;
        double a=x1-x2,b=u1-u2,c=y1-y2,d=v1-v2;
        double x=-(a*b+c*d)/(pow(b,2)+pow(d,2));
        if(x<=0||(b==0&&d==0)) ans=pow(a,2)+pow(c,2);
        else{
            x1+=u1*x,x2+=u2*x;
            y1+=v1*x,y2+=v2*x;
            ans=pow(x2-x1,2)+pow(y2-y1,2);
        }
        printf("Case %d: %.6lf\n",i++,sqrt(ans));
    }
    return 0; 
}

参考链接:(7条消息) 1025-最短距离(中南大学18年研究生复试机试题)_Super-Child的博客-CSDN博客 (7条消息) 中南大学复试上机:最短路径_yuehailin的博客-CSDN博客

题目链接:PIPIOJ

 

标签:Case,u1,样例,u2,PIPOJ,短距离,y1,y2
From: https://www.cnblogs.com/8023yyl/p/17047879.html

相关文章

  • e^x 与 ln x 的 最短距离 是 多少 ?
    下午 7点左右,  在知乎看到一题 :   e^x与 lnx 的最短距离是多少? 在消息通知里看到,  没有看到解题过程,  看到这题是高考难度, ......
  • 110002 求最短距离和ABDE四角已知两点坐标
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';$tit='求最短距离和AB......
  • 110001 求最短距离已知两点坐标
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';$tit='求最短距离已知......
  • java-floyd最短距离算法
    java-floyd最短距离算法publicstaticvoidmain(String[]args){MatrixDGmatrixDG=newMatrixDG();System.out.println("初始化邻接矩阵");matrixDG.print......