【NOIP2016提高A组模拟8.14】传送带
题目
在一个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】传送带的更多相关文章
- 【NOIP2016提高A组模拟9.14】数列编辑器
题目 分析 比赛上,没有注意到询问只询问光标前面,于是只打了个暴力. 因为询问只询问光标前面,首先,当光标向后每移动到一个位置,顺便将这个位置的前缀和,和最大前缀和求出来. 总之,模拟 #includ ...
- 【NOIP2016提高A组模拟8.14】总结
第一题是几何题,没去想直接弃疗.... 第二题觉得很像背包,但是单挑人的顺序不同,答案也会不同,我比较了每个人先后的优劣性,成功搞定了这道题.但是再输出时不小心搞错了,爆零. 第三题,我答案了整整一个 ...
- 【NOIP2016提高A组模拟8.14】疯狂的火神
题目 火神为了检验zone的力量,他决定单挑n个人. 由于火神训练时间有限,最多只有t分钟,所以他可以选择一部分人来单挑,由于有丽子的帮助,他得到了每个人特定的价值,每个人的价值由一个三元组(a,b, ...
- JZOJ 4732. 【NOIP2016提高A组模拟8.23】函数
4732. [NOIP2016提高A组模拟8.23]函数 (Standard IO) Time Limits: 1500 ms Memory Limits: 262144 KB Detailed ...
- JZOJ 【NOIP2017提高A组模拟9.14】捕老鼠
JZOJ [NOIP2017提高A组模拟9.14]捕老鼠 题目 Description 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里的仓库灭灭鼠.于是,猫被农夫约派去捕 ...
- [JZOJ]100047. 【NOIP2017提高A组模拟7.14】基因变异
21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的变异息息相关,考察基因变 ...
- [JZOJ100047] 【NOIP2017提高A组模拟7.14】基因变异
Description 21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的 ...
- 【NOIP2016提高A组模拟9.24】总结
第一题纯模拟,结果那个出题人脑子似乎进水了,空间限制开了1G!!! 导致我捉摸了半天为什么空间要开那么大,最后只能得出上面的结论. 第二题是个矩阵快速幂,比赛上我没把递推式求出来,但是根据各种乱搞,得 ...
- 【JZOJ4746】【NOIP2016提高A组模拟9.3】树塔狂想曲
题目描述 相信大家都在长训班学过树塔问题,题目很简单求最大化一个三角形数塔从上往下走的路径和.走的规则是:(i,j)号点只能走向(i+1,j)或者(i+1,j+1).如下图是一个数塔,映射到该数塔上行 ...
随机推荐
- 阶段3 1.Mybatis_07.Mybatis的连接池及事务_6 mybatis中的事务原理和自动提交设置
在实际的开发中,建议使用连接池的形式. JNDI的资料 H:\BaiDu\黑马传智JavaEE57期 2019最新基础+就业+在职加薪\讲义+笔记+资料\主流框架\31.会员版(2.0)-就业课(2. ...
- ansible-playbook -l 选项
-l <SUBSET>, --limit <SUBSET> further limit selected hosts to an additional pattern 限制脚本 ...
- docker--搭建docker swarm集群
10 搭建docker swarm集群 10.1 swarm 介绍 Swarm这个项目名称特别贴切.在Wiki的解释中,Swarm behavior是指动物的群集行 为.比如我们常见的蜂群,鱼群,秋天 ...
- STM32f103软件复位
参考博客: http://bbs.21ic.com/icview-1251690-1-1.html stm32f103rct 软件复位函数: 在core_cm3.h文件 static __INLINE ...
- Quartz-第四篇 常规quartz的使用
1.目录结构 2.主要文件 1>引入的jar包,quartz-2.2.2解压后lib下所有的jar包 2>quartz.properties org.quartz.threadPool.t ...
- Java中HashMap扩容机制思考
1. HashMap在什么条件下扩容 判断HashMap的数组Size大小如果超过loadFactor*capacity,就要扩容. 相关的类属性: capacity:当前数组容量,始终保持 2^n, ...
- java中Map的put函数和get函数用法
---内容开始--- 没有比较完整的说明他们的用法,一般就只能看源函数,但是看起来比较的费劲. 那么究竟put函数和get函数的用法是如何的呢? 当然java中的Map集合是有Key和Value的. ...
- Phone List POJ-3630 字典树 or 暴力
Phone List POJ-3630 字典树 or 暴力 题意 目前有 t 组数据, n 个电话号码,如果拨打号码的时候 先拨通了某个号码,那么这一串号码就无法全部拨通. 举个例子 911 和 91 ...
- tensorflow学习笔记一----------tensorflow安装
2016年11月30日,tensorflow(https://www.tensorflow.org/)更新了0.12版本,这标志着我们终于可以在windows下使用tensorflow了(但是还是推荐 ...
- 动态规划: HDU1003Max Sum
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...