题目

在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。FTD在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在FTD想从A点走到D点,他想知道最少需要走多长时间

分析

易得,答案就是首先在AB上走一段,然后走到CD上的一点,再走到D。

正解就是三分套三分,但本人很懒,打了个枚举加三分,勉强卡了过去。

首先在AB上枚举一点,接着在CD上按时间三分。

#include <cmath>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <queue>
const double maxlongint=2147483647.0;
const int mo=1000000007;
const int N=50005;
using namespace std;
double ax,ay,bx,by,cx,cy,dx,dy,sp1,sp2,sp3,ans=maxlongint;
double dis1,dis2,dis3;
double gg(double x,double y,double x1,double y1)
{
return sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
}
double solve(double z1,double z2,double z3)
{
return z1*z3/z2;
}
int main()
{
scanf("%lf %lf %lf %lf\n%lf %lf %lf %lf\n%lf %lf %lf",&ax,&ay,&bx,&by,&cx,&cy,&dx,&dy,&sp1,&sp2,&sp3);
dis1=gg(ax,ay,bx,by);
dis2=gg(cx,cy,dx,dy);
for(double i=0;i<=dis1;i+=0.01)
{
double x,y;
double p=solve(i,dis1,abs(bx-ax));
if(bx<ax)
x=ax-p;
else
x=ax+p;
p=solve(i,dis1,abs(by-ay));
if(by<ay)
y=ay-p;
else
y=ay+p;
double l=0,r=dis2;
while(l+0.001<=r)
{
double mid1=l+(r-l)/3,mid2=r-(r-l)/3;
double x1,y1,x2,y2;
p=solve(mid1,dis2,abs(dx-cx));
if(dx<cx)
x1=cx-p;
else
x1=cx+p;
p=solve(mid1,dis2,abs(dy-cy));
if(dy<cy)
y1=cy-p;
else
y1=cy+p;
double rx,ry;
p=solve(mid2,dis2,abs(dx-cx));
if(dx<cx)
x2=cx-p;
else
x2=cx+p;
p=solve(mid2,dis2,abs(dy-cy));
if(dy<cy)
y2=cy-p;
else
y2=cy+p;
if(gg(x,y,x1,y1)/sp3+gg(x1,y1,dx,dy)/sp2<gg(x,y,x2,y2)/sp3+gg(x2,y2,dx,dy)/sp2)
r=mid2;
else l=mid1;
}
double x1,y1;
if(cx>dx)
x1=cx-l/dis2*(cx-dx);
else
x1=cx+l/dis2*(dx-cx);
if(cy>dy)
y1=cy-l/dis2*(cy-dy);
else
y1=cy+l/dis2*(dy-cy);
ans=min(i/sp1+gg(x,y,x1,y1)/sp3+gg(x1,y1,dx,dy)/sp2,ans);
}
printf("%.2lf",ans);
}

【NOIP2016提高A组模拟8.14】传送带的更多相关文章

  1. 【NOIP2016提高A组模拟9.14】数列编辑器

    题目 分析 比赛上,没有注意到询问只询问光标前面,于是只打了个暴力. 因为询问只询问光标前面,首先,当光标向后每移动到一个位置,顺便将这个位置的前缀和,和最大前缀和求出来. 总之,模拟 #includ ...

  2. 【NOIP2016提高A组模拟8.14】总结

    第一题是几何题,没去想直接弃疗.... 第二题觉得很像背包,但是单挑人的顺序不同,答案也会不同,我比较了每个人先后的优劣性,成功搞定了这道题.但是再输出时不小心搞错了,爆零. 第三题,我答案了整整一个 ...

  3. 【NOIP2016提高A组模拟8.14】疯狂的火神

    题目 火神为了检验zone的力量,他决定单挑n个人. 由于火神训练时间有限,最多只有t分钟,所以他可以选择一部分人来单挑,由于有丽子的帮助,他得到了每个人特定的价值,每个人的价值由一个三元组(a,b, ...

  4. JZOJ 4732. 【NOIP2016提高A组模拟8.23】函数

    4732. [NOIP2016提高A组模拟8.23]函数 (Standard IO) Time Limits: 1500 ms  Memory Limits: 262144 KB  Detailed ...

  5. JZOJ 【NOIP2017提高A组模拟9.14】捕老鼠

    JZOJ [NOIP2017提高A组模拟9.14]捕老鼠 题目 Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里的仓库灭灭鼠.于是,猫被农夫约派去捕 ...

  6. [JZOJ]100047. 【NOIP2017提高A组模拟7.14】基因变异

    21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的变异息息相关,考察基因变 ...

  7. [JZOJ100047] 【NOIP2017提高A组模拟7.14】基因变异

    Description 21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的 ...

  8. 【NOIP2016提高A组模拟9.24】总结

    第一题纯模拟,结果那个出题人脑子似乎进水了,空间限制开了1G!!! 导致我捉摸了半天为什么空间要开那么大,最后只能得出上面的结论. 第二题是个矩阵快速幂,比赛上我没把递推式求出来,但是根据各种乱搞,得 ...

  9. 【JZOJ4746】【NOIP2016提高A组模拟9.3】树塔狂想曲

    题目描述 相信大家都在长训班学过树塔问题,题目很简单求最大化一个三角形数塔从上往下走的路径和.走的规则是:(i,j)号点只能走向(i+1,j)或者(i+1,j+1).如下图是一个数塔,映射到该数塔上行 ...

随机推荐

  1. 转]@SuppressWarnings 详解

    转自:http://gladto.iteye.com/blog/728634 背景知识:        从JDK5开始提供名为Annotation(注释)的功能,它被定义为JSR-175规范.注释是以 ...

  2. Flex String拼接

    平时Flex String拼接的时候直接str+str2 今天就想看看Flex自带的函数好不好用,然后使用 str.concat(str2); Alert.show(str); 结果没有变化,才发现一 ...

  3. 【HANA系列】SAP HANA STUDIO客户端升级更新

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA STUDIO客 ...

  4. 使用Sklearn构建朴素贝叶斯分类器-新闻分类

    # -*- coding: UTF-8 -*- import jieba import os import random from sklearn.naive_bayes import Multino ...

  5. 应用安全 - 工具 - Adobe - Adobe Flash Player - 漏洞 - 汇总

    CVE-2018-4878 Date 类型软件漏洞可被用于钓鱼 影响范围Flash Player版本28.0.0.137以及之前的所有版本 复现 分析

  6. python面试题--初级(二)

    基础不牢,地动山摇,面试的时候经常会被问到一些平时基础的很容易被忽视的知识点,所以重在积累,多看多背深入理解,才能在某一天工作中豁然开朗恍然大悟. 面试题不仅仅为了应付面试,更是知识点的一个梳理总结归 ...

  7. 极*Java速成教程 - (5)

    Java语言基础 容器 这个世界是有序的,将Java对象零散地放到内存中是不符合世界常理的,特别是有一大组相似的甚至不知道有多少数据的时候.把Java对象装进盒子里可以有序收纳,这个盒子就叫容器. 初 ...

  8. Skiing POJ 3037 很奇怪的最短路问题

    Skiing POJ 3037 很奇怪的最短路问题 题意 题意:你在一个R*C网格的左上角,现在问你从左上角走到右下角需要的最少时间.其中网格中的任意两点的时间花费可以计算出来. 解题思路 这个需要发 ...

  9. php读取excel文件并导入数据库(表头任意设定)

    最近收到一个很奇葩的需求,要求上传excel员工工资表,表格表头不固定,导入后字段名为表头的拼音,每月导入一次,当月重复导入则覆盖现有的当月表头,并且可以按照在界面上按照月份筛选显示,我写的代码主要包 ...

  10. Zookeeper — 应用场景

    大致来说,zookeeper 的使用场景如下,我就举几个简单的,大家能说几个就好了: 分布式协调 分布式锁 元数据/配置信息管理 HA高可用性 分布式协调 这个其实是 zookeeper 很经典的一个 ...