传送门:Line belt

参考:http://blog.csdn.net/hcbbt/article/details/39375763

题意:在一个平面途中,有一条路ab,还有一条路cd;假设在ab,cd和其他地方的运动速度不同;

  求从a到d的最短时间;

思路:三分在ab上的点,在三分cd上的点,找到对应最小的运动时间;

#include <iostream>
#include <cstring>
#include <algorithm>
#include <string>
#include <cstring>
#include <cmath>
using namespace std;
const double esp = 1e-; struct node {
double x,y;
};
node a,b,c,d,b2,d2;
double ab,cd;
double p,q,r;
double dis(node a, node b)
{
return sqrt(esp+(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));//就是这里要加入esp
}
double get(double t)
{
d2.x= d.x+(c.x-d.x)/cd*t*q;
d2.y= d.y+(c.y-d.y)/cd*t*q;
return t + dis(b2,d2)/r;
}
double solve(double s)
{
b2.x = a.x+(b.x-a.x)/ab*s*p;
b2.y = a.y+(b.y-a.y)/ab*s*p;
double le=0.0,ri=cd/q;
while(le+esp<ri)
{
double m1=le+(ri-le)/;
double m2=ri-(ri-le)/;
if(get(m1)<get(m2))
{
ri=m2;
}
else le = m1;
}
return s+get(le);
}
int main(){
//freopen("in","r",stdin);
int t;
scanf("%d",&t);
while(t--)
{
scanf("%lf%lf%lf%lf", &a.x, &a.y, &b.x, &b.y);
scanf("%lf%lf%lf%lf", &c.x, &c.y, &d.x, &d.y);
scanf("%lf%lf%lf", &p, &q, &r);
ab = dis(a, b);
cd = dis(c, d);
double le=0.0, ri=ab/p;
while(le+esp<ri)
{
double m1=le+(ri-le)/;
double m2=ri-(ri-le)/;
if(solve(m1)<solve(m2))
{
ri=m2;
}
else le = m1;
}
printf("%.2lf\n",solve(le));
}
return ;
}

HDU-3400Line belt-三分再三分-求距离中要加esp的更多相关文章

  1. HDU 3400 Line belt (三分再三分)

    HDU 3400 Line belt (三分再三分) ACM 题目地址:  pid=3400" target="_blank" style="color:rgb ...

  2. HDU - 3899 JLUCPC(树形dp求距离和)

    JLUCPC Dr. Skywind and Dr. Walkoncloud are planning to hold the annual JLU Collegiate Programming Co ...

  3. 三分套三分 --- HDU 3400 Line belt

    Line belt Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=3400 Mean: 给出两条平行的线段AB, CD,然后一 ...

  4. HDU 3400 Line belt【三分套三分】

    从A出发到D,必定有从AB某个点E出发,从某个点F进入CD 故有E,F两个不确定的值. 在AB上行走的时间   f = AE / p 在其他区域行走的时间 g = EF / r 在CD上行走的时间   ...

  5. D.Country Meow 最小球覆盖 三分套三分套三分 && 模拟退火

    // 2019.10.3 // 练习题:2018 ICPC 南京现场赛 D Country Meow 题目大意 给定空间内 N 个点,求某个点到 N 个点的距离最大值的最小值.   思路 非常裸的最小 ...

  6. 【BZOJ-1857】传送带 三分套三分

    1857: [Scoi2010]传送带 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 1077  Solved: 575[Submit][Status][ ...

  7. 2018.06.30 BZOJ1857: [Scoi2010]传送带(三分套三分)

    1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MB Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段 ...

  8. 【BZOJ1857】传送带(分治经典:三分套三分)

    点此看题面 大致题意: 一个二维平面上有两条传送带\(AB\)和\(CD\),\(AB\)传送带的移动速度为\(P\),\(CD\)传送带的移动速度为\(Q\),步行速度为\(R\),问你从\(A\) ...

  9. bzoj 1857 三分套三分

    题目大意 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxh ...

随机推荐

  1. Linux学习笔记03

    一.Linux常见命令 file:查看文件类型(windows用扩展名识别文件类型) 语法:file [options] [args] -b:显示结果时,不显示文件名 -c:显示执行file命令的执行 ...

  2. Spark Streaming消费Kafka Direct保存offset到Redis,实现数据零丢失和exactly once

    一.概述 上次写这篇文章文章的时候,Spark还是1.x,kafka还是0.8x版本,转眼间spark到了2.x,kafka也到了2.x,存储offset的方式也发生了改变,笔者根据上篇文章和网上文章 ...

  3. Ping、Traceroute工作原理

    在工作开发过程中,我们经常会使用到ping和traceroute.在这里,我们将细述其工作原理,让你在会用的基础之上理解其内部工作过程. ICMP应用实例--Ping Ping 是 ICMP 的一个重 ...

  4. 自定义SWT控件六之自定义Tab

    6.自定义tab 本章节提供的自定义tab 分为两类 tab上带删除按钮和添加按钮,可删除tab和添加tab tab不可删除和添加 6.1 不可删除tab package com.view.contr ...

  5. ElasticSearch6.x版本聚合分析整理

    ElasticSearch6.x版本聚合分析整理 ES将聚合分析主要分为如下4类 Bucket,分桶类型,类似SQL中的GROUP BY语法 Metric,指标分析类型,如计算最大值 , 最小值,平均 ...

  6. ThreadLocal线程隔离

    package com.cookie.test; import java.util.concurrent.atomic.AtomicInteger; /** * author : cxq * Date ...

  7. 【POJ - 2229】Sumsets(完全背包)

    Sumsets 直接翻译了 Descriptions Farmer John 让奶牛们找一些数加起来等于一个给出的数N.但是奶牛们只会用2的整数幂.下面是凑出7的方式 1) 1+1+1+1+1+1+1 ...

  8. docker-compose 综合训练

    Docker-compose综合训练 一. 实验目的: 熟悉Docker-compose的基本工作原理: 熟悉Docker-compose安装 熟悉Docker compose命令基础 熟悉Docke ...

  9. Go-如何读取yaml,json,ini等配置文件

    1. json使用 JSON 应该比较熟悉,它是一种轻量级的数据交换格式.层次结构简洁清晰 ,易于阅读和编写,同时也易于机器解析和生成. 创建 conf.json: { "enabled&q ...

  10. There’s More Than One Way To Do It!

    There’s More Than One Way To Do It!