问题 F: 懒人得多动脑

时间限制: 1 Sec  内存限制: 128 MB
提交: 93  解决: 30
[提交][状态][讨论版]

题目描述

小D的家A和学校B都恰好在以点F为焦点的双曲线上,而小D每日所需的生活水源在一条平行该双曲线准线的直线上,设它的值为v。大家都知道,每天都是要喝水的,但是小D有点懒,他希望自己能在去上学或者回家的时候顺路打桶水,并且走最短的路,你能帮助他吗?

下图所示样例的情况,已知焦点在x轴上,那么其准线垂直x轴,即x=v,故可作出河流所在直线如图,那么最优路线为从家A到点C(0,5.8888889)取水,然后再到学校B,那么总长度就是这两段各自距离之和,即|AC| + |CB|。

输入

第一行输入数据组数T(T <= 100)。

每组数据包括四个坐标,其格式如下:

第一行输入点A的坐标X1,Y1

第二行输入点B的坐标X2,Y2

第三行输入点F的坐标X3,Y3

第四行输入值v

保证双曲线焦点在坐标轴上,

保证A,B点的坐标以及v值均为整数且绝对值不大于1000,保证F坐标值不超过1000.0。

相邻两组数据之间有一空行。

输出

输出”Case #x: s”,x表示数据组数,s表示该最短路的距离,保留6位小数

样例输入

2
40 40
-920 480
0.000000 73.9889111581
636 5 7
4 5
4.9286577 0
0

样例输出

Case #1: 1219.468737
Case #2: 9.219544

提示

双曲线的定义:平面内到两定点的距离差的绝对值为定长的点的轨迹叫做双曲线。

若设焦点为F1,F2,则双曲线上任意一点P满足 | |PF1| - |PF2| | = 2*a。

若焦点在 x轴,则对应双曲线方程为x^2/a^2 - y^2/b^2 = 1,焦点F坐标为(c,0),其中c为a^2 + b^2,其准线为x = ±a^2/c

若焦点在 y轴,则对应双曲线方程为y^2/a^2 - x^2/b^2 = 1,焦点F坐标为(0,c),其中c为a^2 + b^2,其准线为y = ±a^2/c

上述a为双曲线的实半轴,b为双曲线的虚半轴。

 
 
这道题就是简单的数学。
 
#include <cstdio>
#include <cmath>
#define swapi(a,b,tt) {tt=a;a=b;b=tt;}
int main()
{
int icase;
scanf("%d",&icase);
for(int t=;t<=icase;t++)
{
double x,y,x1,y1,x2,y2,fx,fy,v,sum,tt;
scanf("%lf%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&fx,&fy,&v);
if(fy)
{
swapi(y1,x1,tt);
swapi(y2,x2,tt);
}
if(x1<x2)
{
swapi(x1,x2,tt);
swapi(y1,y2,tt);
}
if(x2<v&&v<x1)
{
x=x1-x2;
y=y1-y2;
}
else
{
x=x1+x2-*v;
y=y1-y2;
}
sum=sqrt(x*x+y*y);
printf("Case #%d: %.6lf\n",t,sum);
}
return ;
}

最新文章

  1. 【转载】Oracle递归查询:使用prior实现树操作【本文出自叶德华博客】
  2. JFinal 国际化
  3. SQL初级语法 [查询: SELECT]
  4. quartus II PIN脚相关之一
  5. android xml解析添加到listview中的问题
  6. 一切从IL开始
  7. linux sed命令参数及用法详解
  8. [MVC] 深入浅出Spring MVC
  9. 获取本地ip地址
  10. Sql server decimal 和 numeric
  11. eclipse设置系统字体
  12. MacOS下对postgresql的简单管理操作
  13. springboot打jar包正常无法访问页面
  14. Flask filter过滤器
  15. jsp中${pageContext.request.contextPath}的意思
  16. Linux系统中的常用命令
  17. Arcmap连接数据库需管理员获取许可——创建ArcSDE连接文件
  18. Paper | 帧间相关性 + 压缩视频质量增强(MFQE)
  19. LeetCode - 774. Minimize Max Distance to Gas Station
  20. SQLServer 里面的 DDL,DML,DCL,TCL(转)

热门文章

  1. Android商城开发系列(十二)—— 首页推荐布局实现
  2. 关于调用百度地图api在自己写的网页中实现和解决在https中正常显示
  3. python资料汇总
  4. linux 命令——24 Linux文件类型与扩展名
  5. SVN和Git的区别
  6. python 数据库操作 SQLite、MySQL 摘录
  7. 完全用 Linux 工作
  8. python_71_json序列化1
  9. 解决ssh登录慢,等待时间长的问题
  10. 分享12款最佳的Bootstrap设计工具