博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017校赛 问题 F: 懒人得多动脑
阅读量:6324 次
发布时间:2019-06-22

本文共 1621 字,大约阅读时间需要 5 分钟。

题目描述

小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位小数

样例输入

240 40-920 4800.000000 73.98891115816365 74 54.9286577 00

样例输出

Case #1: 1219.468737Case #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为双曲线的虚半轴。

 

不想说话了,校赛好失败,本来看这道题着,以为麻烦并且还记着前两到没A的题所以没做,其实也很水啊。

在同一侧就算对称点,否则直接算两点距离啊!

 

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 const int maxn=210; 8 9 int main()10 {11 int T,n;12 cin>>T;13 for(int cas=1;cas<=T;cas++)14 {15 double x1,y1,x2,y2,x3,y3,v;16 scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);17 scanf("%lf%lf%lf",&x3,&y3,&v);18 double ans;19 double tmax=-1e7,tmin=1e7;20 if((fabs(y3)<1e-6))21 {22 tmax=max(x1,x2);23 tmin=min(x1,x2);24 if(tmin>v||tmax
v||tmax

 

转载于:https://www.cnblogs.com/zxhyxiao/p/8059124.html

你可能感兴趣的文章
一个全新的拖拽分页—艺术啊
查看>>
Linux学习之CentOS(三十)--SELinux安全系统基础
查看>>
LVS+keepalived高可用群集
查看>>
jQuery库简介
查看>>
win7系统设置电脑不待机状态的操作方法
查看>>
手把手教你如何使用驰骋工作流程引擎的表单设计器做数据提交前的表单验证...
查看>>
nginx php 超过4M文件上传失败,uploadify i/o error解决。
查看>>
nginx+php安装配置
查看>>
LAMP+Centos6.5上安装zabbix
查看>>
android判断网络连接状态的三种方法
查看>>
ZOJ Monthly, March 2013 解题报告
查看>>
LaTex表格 Itemize&&enumerate
查看>>
Spring Boot中@OneToMany与@ManyToOne几个需要注意的问题
查看>>
文件传输协议之FTP
查看>>
Openstack 安装部署指南翻译系列 之 Glance服务安装(Image)
查看>>
Java 使用POI实现execl的导入导出数据实践
查看>>
Unity3D游戏开发之伤害数值显示
查看>>
如何在Linux上搭建一个基于Web的轻型监控系统
查看>>
linux基础命令使用
查看>>
zabbix简单检测
查看>>