F. Two Points

There are two points (x1, y1) and (x2, y2) on the plane. They move with the velocities (vx1, vy1) and (vx2, vy2). Find the minimal distance between them ever in future.

Input

The first line contains four space-separated integers x1, y1, x2, y2 ( - 104 ≤ x1,  y1,  x2,  y2 ≤ 104) — the coordinates of the points.
The second line contains four space-separated integers vx1, vy1, vx2, vy2 ( - 104 ≤ vx1,  vy1,  vx2,  vy2 ≤ 104) — the velocities of the points.

Output

Output a real number d — the minimal distance between the points. Absolute or relative error of the answer should be less than 10 - 6.

Examples

Input

1 1 2 2
0 0 -1 0

Output

1.000000000000000

Input

1 1 2 2
0 0 1 0

Output

1.414213562373095


题意:

输入两个点坐标和速度向量
求这两个点能到的最近距离
输入

x1,y1,x2,y2vx1,vy1,vx2,vy2x1,y1,x2,y2vx1,vy1,vx2,vy2

x_1 , y_1 , x2,y2 \\ v_{x_1},v_{y_1},v_{x_2},v_{y_2}


题解

求出距离表达式

d=(x1−x2+t×(vx1−vx2))2+(y1−y2+t×(vy1−vy2))2−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√d=(x1−x2+t×(vx1−vx2))2+(y1−y2+t×(vy1−vy2))2

d=\sqrt {(x_1-x_2+t\times(v_{x_1}-v_{x_2}))^2+(y_1-y_2+t\times(v_{y_1}-v_{y_2}))^2}
在 [0,105][0,105][0,10^5]三分 ttt求d" role="presentation">ddd的最小值即可
注意:在三分t的时候精度要高,答案要求为10−610−610^{-6}但这是距离的精度,时间精度应该更大,这个题需要时间精度高于10−1010−1010^{-10}
也可以不管精度,直接跑一百遍

#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
double X1, Y1, x2, y2, vx1, vy1, vx2, vy2;
double pow2(double x) { return x * x; }
double check(double t)
{return  pow2(X1 - x2 + t * (vx1 - vx2)) + pow2(Y1 - y2 + t * (vy1 - vy2));
}
int main()
{scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &X1, &Y1, &x2, &y2, &vx1, &vy1, &vx2, &vy2);double L, R;L = 0;R = 1e6;int tot = 100;while (tot--){double mid1 = (L + L + R) / 3;double mid2 = (R + R + L) / 3;double ans1 = check(mid1);double ans2 = check(mid2);if (ans1 <= ans2)R = mid2;else L = mid1;}double ans = sqrt(check(L));printf("%.9f\n", ans);
}

gym/226036-F. Two Points【三分查找】相关推荐

  1. C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划

    C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划 博文末尾支持二维码赞赏哦 _ github 章3 Stack栈 和 队列Queue= ...

  2. 【Qt】在QtCreator中使用Ctrl+Shift+f快捷键打开高级查找窗口失效的解决方法

    1.问题描述 Win10操作系统环境下,在QtCreator中使用Ctrl+Shift+f快捷键打开高级查找窗口失效. 2.原因分析 Ctrl+Shift+f快捷键在各种输入法中,常用来做中文简体和繁 ...

  3. C语言实现ternary search三分查找算法(附完整源码)

    实现ternary search三分查找算法 实现ternary search三分查找算法的完整源码(定义,实现,main函数测试) 实现ternary search三分查找算法的完整源码(定义,实现 ...

  4. 大剑无锋之二分搜索、二分搜索时间复杂度、三分查找呢?

    题目:搜索 (1)请写出Java代码,实现二分搜索(给定一个按升序排列的数组和一个要查找的值,返回该值在数组中的index) (2)说明该算法时间复杂度 (3)如果改成三分搜索,时间复杂度将会是多少? ...

  5. 二分检索用途及复杂性_二分查找和三分查找哪个快?算法复杂度与常数无关?复杂度分析的常见误区...

    还记得两三年前,我初看一本算法书,看到二分查找算法的复杂度时,我发现了了不得的东西:二分查找每次查询范围减少一半,需要查询的次数是 ,它的复杂度是 . 我把它改成三分查找,每次查询两个数字与我的目标数 ...

  6. 快乐学算法之:三分查找树ternary search tree

    文章目录 简介 三分查找树的结构 三分查找树的代码表示 三分查找树的应用 简介 之前我们介绍了tire字典树,tire字典树的优点就是插入和查找比较快速,但是它的缺点就是占用的空间比较大.假如我们要存 ...

  7. Gym - 101492 F. Hitting the target(几何)

    http://codeforces.com/gym/101492/problem/F 刚开始的时候按照矩形来做,wa几发之后才知道需要按照圆来做,需要计算一下dis距离. #include<io ...

  8. 【NTT】Gym - 101480 - F - Frightful Formula

    题目链接https://codeforces.com/gym/101480/attachments 题意 给出一个矩阵,第一行是数组 t t t,第一列是数组 l l l,其余的值为 F [ i ] ...

  9. F - 数据结构实验之查找六:顺序查找

    Description 在一个给定的无序序列里,查找与给定关键字相同的元素,若存在则输出找到的元素在序列中的位序和需要进行的比较次数,不存在则输出"No",序列位序从1到n,要求查 ...

最新文章

  1. oracle之控制文件恢复
  2. h2 mysql 差别_h2内存数据库和mysql数据库的区别
  3. Mysq表的创建和l数据类型
  4. 【竞赛总结】CCF多人种人脸识别
  5. 半监督学习技术在金融文本分类上的实践
  6. oracle 同步 部份表,Oracle 同步表数据外键处理
  7. 1024 科学计数法 (20 分)(c语言)
  8. Allegro padstack
  9. 全栈工程师薪水_2019Java 全栈工程师 进阶路线图!一定要收藏!
  10. Vue项目—请求函数的封装
  11. [转载] Python中的memoryview
  12. 常用排序算法的python实现
  13. (转)证券投资及财富管理市场创新趋势
  14. JavaScript - 用户名表单验证
  15. Windows App开发之编辑文本与绘制图形
  16. 软件产品的税收优惠政策
  17. 重新理解创业——一个创业者的途中思考
  18. [Office] Microsoft Office Outlook 2007/2010 设置邮件已读/未读快捷键
  19. 提取住房公积金有什么影响
  20. 代码操作redis集群报错:(error) MOVED 解决方法

热门文章

  1. 持续精进——我的2017年终总结
  2. python getA() 函数
  3. 求指点如何使用dynami类型的变量
  4. 基于LMS及FxLMS算法的ANC主动降噪仿真分析
  5. Spectral-based graph convolutional neural network
  6. 【电路理论】2-6 线性电阻电路解答的存在性与惟一性定理
  7. ac86u原厂固件去广告_释放更多功能,华硕 AC86U 刷官改固件教程
  8. IGBT静态参数测试系统可测项目有哪些?
  9. JAVA 115个面试题及个人部分衍生疑问?
  10. android 9.0 c7Pro,透心凉!三星Galaxy C7 Pro上线,还内置热管