CSU 1407: 最短距离(数学啊 )
来源:互联网 发布:js实现动态时钟 编辑:程序博客网 时间:2024/06/02 17:31
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1407
Description
两个点A, B均在做匀速直线运动。给出t = 0时刻A, B的坐标,以及A, B的速度,计算t ≥ 0时两个点的距离的最小值。
Input
输入的第一行包含一个整数T (1 ≤ T ≤ 200),表示一共有T组测试数据。
对于每组测试数据,第一行包含4个整数xA, yA, vAx, vAy (-103 ≤ xA, yA, vAx, vAy ≤ 103),表示t = 0时刻A的坐标为(xA, yA),A的速度在x轴方向上的分量为vAx,在y轴上的分量为vAy。第二行包含四个整数xB, yB, vBx, vBy (-103 ≤ xB, yB, vBx, vBy ≤ 103),以相同的方式给出了B的各项属性。
Output
对于每组测试数据,输出t ≥ 0时两个点距离的最小值,保留8位小数。
Sample Input
60 0 0 00 1 0 10 0 -1 10 0 1 -10 1 1 02 0 0 10 1 1 02 0 1 00 0 -1 11 1 1 -1997 997 -1000 -1000-1000 -1000 1000 1000
Sample Output
1.000000000.000000000.707106782.236067981.414213560.00000000
HINT
Source
中南大学第八届大学生程序设计竞赛
代码如下:
#include <cstdio>#include <cmath>#include <cstring>int main(){ int t; double xa, ya, vax, vay; double xb, yb, vbx, vby; scanf("%d",&t); while(t--) { scanf("%lf%lf%lf%lf",&xa,&ya,&vax,&vay); scanf("%lf%lf%lf%lf",&xb,&yb,&vbx,&vby); //dis^2 = a*t^2+b*t+c double a = ((vax-vbx)*(vax-vbx)+(vay-vby)*(vay-vby)); //a一定>=0 double b = 2*(xa*(vax-vbx)+xb*(vbx-vax)+ya*(vay-vby)+yb*(vby-vay)); double c = xa*(xa-2*xb)+ya*(ya-2*yb)+yb*yb+xb*xb; double dis1 = 0, dis2 = 0, dis3 = 0; double xx = -(2*a)/b;//顶点坐标 double yy = sqrt((4*a*c-b*b)/(4*a)); double d = -b/(2*a);//解:求导得:2*a*x+b = 0; if(a == 0) { dis1 = sqrt(c); printf("%.8lf\n",dis1); } else if(a > 0) { if(d >= 0) { dis2 = yy; } else { dis2 = sqrt(c); } printf("%.8lf\n",dis2); }// printf("dis1:%.8lf\n",dis1);// printf("dis2:%.8lf\n",dis2); } return 0;}
1 0
- CSU 1407: 最短距离(数学啊 )
- CSU-1407: 最短距离
- csu 点到圆弧的最短距离
- CSU 1806 Toll(数学+最短路)
- 1407: 最短距离
- CSU 1410: 整数转换(数学啊 )
- CSU 1265: Dice (数学啊 )
- CSU 1270: Swap Digits(数学啊 )
- CSU 1271: Brackets Sequence(数学啊 )
- 蜂窝小区最短距离实现 (数学归纳法+广度优先算法)
- 蜂窝小区最短距离实现 (数学归纳法+广度优先算法)
- 蜂窝小区最短距离实现 (数学归纳法+广度优先算法)
- 最短距离
- 最短距离
- 最短距离
- 最短距离
- csu 1759 Triangle(数学)
- CSU 1505: 酷酷的单词(数学啊)
- 没有压力,不复美丽
- conkeror使用socks 5 代理
- openCV中canny算法
- 运放中不使用引脚正确处理方式
- 豁达是一种人生智慧
- CSU 1407: 最短距离(数学啊 )
- 【HDU 1158】 Employment Plannin
- 灰度世界算法(Gray World Algorithm)
- 《HotSpot实战》笔记2类与对象
- C语言基础之数组、字符串、指针
- 编程学习笔记3--大整数的运算
- android中string.xml中%1$s、%1$d等的用法
- CSU 1408: 种植树苗(贪心啊 )
- HDU2734:Quicksum