题意:给你两条线段AB,CD;然后给你在AB,CD上的速度P,Q,在其它部分的速度是R,然后求A到D的最短时间。

思路:用三分枚举从AB线段上离开的点,然后再用三分枚举在CD的上的点找到最优点,求距离和时间就可以。

 #include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const double eps=1e-; int t;
double p,q,r;
struct point
{
double x,y;
}a,b,c,d; double sqr(double x)
{
return x*x;
} double dis(double x1,double y1,double x2,double y2)
{
return sqrt(sqr(x1-x2)+sqr(y1-y2)+eps);
} double ok(double t1)
{
point pos;
pos.x=a.x+(b.x-a.x)*((t1*p)/dis(a.x,a.y,b.x,b.y));
pos.y=a.y+(b.y-a.y)*((t1*p)/dis(a.x,a.y,b.x,b.y));
double l1=,r1=dis(c.x,c.y,d.x,d.y)/q;
while(r1-l1>eps)
{
double mid1=(r1+l1)/;
double mid2=(mid1+r1)/;
double x1=d.x+(c.x-d.x)*((mid1*q)/dis(c.x,c.y,d.x,d.y));
double y1=d.y+(c.y-d.y)*((mid1*q)/dis(c.x,c.y,d.x,d.y));
double x2=d.x+(c.x-d.x)*((mid2*q)/dis(c.x,c.y,d.x,d.y));
double y2=d.y+(c.y-d.y)*((mid2*q)/dis(c.x,c.y,d.x,d.y));
double d1=dis(pos.x,pos.y,x1,y1)/r;
double d2=dis(pos.x,pos.y,x2,y2)/r;
if(d1+mid1<=d2+mid2)
{
r1=mid2;
}
else
l1=mid1;
}
double xx=d.x+(c.x-d.x)*(l1*q)/dis(c.x,c.y,d.x,d.y);
double yy=d.y+(c.y-d.y)*(l1*q)/dis(c.x,c.y,d.x,d.y);
return dis(pos.x,pos.y,xx,yy)/r+t1+l1;
} int main()
{
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);
double ll=,rr=dis(a.x,a.y,b.x,b.y)/p;
while(rr-ll>eps)
{
double mid1=(ll+rr)/;
double mid2=(mid1+ll)/;
if(ok(mid2)>=ok(mid1))
{
ll=mid2;
}
else
rr=mid1;
}
printf("%.2lf\n",ok(ll));
}
}

hdu 3400 Line belt的更多相关文章

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

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

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

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

  3. 搜索(三分):HDU 3400 Line belt

    Line belt Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  4. HDU 3400 Line belt (三分嵌套)

    题目链接 Line belt Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  5. HDU 3400 Line belt (三分套三分)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=3400 题意: 有两条带子ab和cd,在ab上的速度为p,在cd上的速度为q,在其它地方的速度为r.现 ...

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

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

  7. hdu 3400 Line belt 三分法

    思路:要求最短时间从A到D,则走的路线一定是AB上的一段,CD上的一段,AB与CD之间的一段. 那么可以先三分得到AB上的一个点,在由这个点三分CD!! 代码如下: #include<iostr ...

  8. 【HDOJ】3400 Line belt

    三分. #include <cstdio> #include <cstring> #include <cmath> typedef struct { double ...

  9. Line belt

    Problem Description In a two-dimensional plane there are two line belts, there are two segments AB a ...

随机推荐

  1. tcp dump 截取http

    监听命令 sudo tcpdump -w mm.txt -s 0 -A -v  tcp dst port 8080 -w mm.txt :把记录下来的数据已二进制格式存储在mm.txt文件内  -w ...

  2. Spring Boot 入门

    Spring Boot自动配置 http://blog.javachen.com/2015/03/13/how-to-run-spring-boot-application.html http://b ...

  3. SpringBoot 配置文件 application.properties(二)

    mvc spring.mvc.async.request-timeout设定async请求的超时时间,以毫秒为单位,如果没有设置的话,以具体实现的超时时间为准,比如tomcat的servlet3的话是 ...

  4. 004_Eclipse编写第一个Java_Web程序

    1.MyEclipse的菜单栏--File--Web Project,新建一个web工程 Project name 填上自己的项目名称,例如HelloWorld. 需要选择Java EE版本以及Tar ...

  5. Linux命令 - 删除文件(夹)

    1.删除文件夹 rm –rf /var/test 将会删除/var/test目录以及其下的所有文件.文件夹 2.删除文件 rm -f /var/test/test.txt 将会强制删除/var/tes ...

  6. 使用Dreamwaver cc中的SVN功能,用于传输BAE和SAE中的文件

    前沿: 假期使用BAE和SAE开发应用,两个服务器都需要通过SVN提交代码,因为平时大多使用Dreamwaver,所以查了查资料,通过Subversion方便了开发. 因为网上的资料都不全,所以根据自 ...

  7. Nginx优化具体,应对高并发

     nginx指令中的优化(配置文件) worker_processes 8; nginx进程数,建议依照cpu数目来指定.一般为它的倍数. worker_cpu_affinity 00000001 ...

  8. Android系统移植与驱动开发----第一章

    第一章 Android系统移植与驱动开发 Android源代码定制完全属于自己的嵌入式系统,但是支持的设备不多,所以要移植,而在移植的过程中使用的不得不提的是驱动开发. Android系统构架主要包括 ...

  9. 学习JAVA第一部分总结

    把自己这几天的学习情况记录下来. 第一章,认识JAVA,了解JAVA的运行机制,虚拟机. 第二章,了解java的注释,标识符,关键字.. 第三章,基本的数据类型,byte short int long ...

  10. 一、初识T4引擎

    对于代码生成器我们并不陌生,在日常编码中这也是用的比较多的工具之一.一般代码生成器主要功能是生成公共或基础代码来减少编码人员的工作量,而一款优秀的代码生成器除了生产代码以外,同时兼具生成项目架构和基础 ...