Font Size:Aa
Aa
Aa

Description

Asakura存在于一个魔法世界中。有一天,Asakura在一条魔法通道里偷懒,突然接到一个紧急任务,要高速赶往还有一条通道b去。

我们把通道a和b看作两条线段AB和CD,Asakura初始位置在A。如今要高速赶往D。Asakura在魔法通道a上的速度为v1,在魔法通道b上速度为v2,在除了这两条通道上的其余位置的速度为v3。

Asakura最快多长时间才干到达指定位置。

Input

多组输入
对于每组測试数据:包括三行
第一行输入四个整数x1,y1,x2,y2.当中(x1,y1)为A,(x2,y2)为B.(-10000<=x1,y1,x2,y2<=10000)
第二行输入四个整数x3,y3,x4,y4.当中(x3,y3)为C,(x4,y4)为D.(-10000<=x3,y3,x4,y4<=10000)
第三行输入三个整数v1,v2,v3.(1<=v1,v2,v3<=50)
每两组測试数据间输入一个空行。

Output

输出A到D最短的时间,结果精度到小数点后两位(四舍五入)。

Sample Input

0 0 50 50
50 0 50 50
1 1 1 0 0 50 50
50 0 50 50
3 1 3 0 0 50 50
50 0 50 50
1 3 1

Sample Output

70.71
23.57
63.81





代码例如以下:
#include<cstdio>
#include<cmath>
doubledis(double
x1, double
y1,
double x2,
double y2)
{
    returnsqrt((x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2));
}
doublev1, v2, v3, x[4], y[4];
doublemindis(doublexi,
double yi)
{
    doublei = x[3] - x[2];
    doublej = y[3] - y[2];
    doublel = 0, r = 1;
    intt;
    doubletmid, tmidmid;
    for(t = 1; t <= 50; t++)
    {
        doublemid = (l + r) / 2;
        doublemidmid = (mid + r) / 2;
        doublemidx = x[2] + mid*i;
        doublemidy = y[2] + mid*j;
        doublemidmidx = x[2] + midmid*i;
        doublemidmidy = y[2] + midmid*j;
        tmid = dis(xi, yi, midx, midy) / v3 + dis(midx, midy, x[3], y[3]) / v2;
        tmidmid = dis(xi, yi, midmidx, midmidy) / v3 + dis(midmidx, midmidy, x[3], y[3]) / v2;
        if(tmid > tmidmid)
            l = mid;
        elser = midmid;
    }
    returntmidmid;
}
int
main()
{
    while(~scanf("%lf
%lf %lf %lf"
, &x[0], &y[0], &x[1], &y[1]))
    {
        scanf("%lf %lf %lf %lf", &x[2], &y[2], &x[3], &y[3]);
        scanf("%lf %lf %lf", &v1, &v2, &v3);
        doublei = x[1] - x[0];
        doublej = y[1] - y[0];
        doublel = 0, r = 1;
        intt;
        doubletmid, tmidmid;
        for(t = 1; t <= 50; t++)
        {
            doublemid = (l + r) / 2;
            doublemidmid = (mid + r) / 2;
            doublemidx = x[0] + mid*i;
            doublemidy = y[0] + mid*j;
            doublemidmidx = x[0] + midmid*i;
            doublemidmidy = y[0] + midmid*j;
            tmid = dis(x[0], y[0], midx, midy) / v1 + mindis(midx, midy);
            tmidmid = dis(x[0], y[0], midmidx, midmidy) / v1 + mindis(midmidx, midmidy);
            if(tmid > tmidmid)
                l = mid;
            elser = midmid;
        }
        printf("%.2lf\n", tmid);
    }
    return0;
}

Asakura的魔法世界的更多相关文章

  1. Blink, 通向哈里·波特的魔法世界

    <哈里·波特>的故事里面,魔法界的新闻报纸都是动画的,配图带有动画效果.能够回放新闻的主要场景. 初次看到这个,感觉还挺新鲜的.不过现在,Blink 这样的 App 可以让这个魔法世界的幻 ...

  2. [信息OJ 2467] Asakura的难题

     2467: G Asakura的难题 Time Limit:2000MS Memory Limit:65536KB Description Asakura是班里有名的捣蛋鬼,所以经常有同学到老师那里 ...

  3. PAT 1037. 在霍格沃茨找零钱(20)

    如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.& ...

  4. C++之路进阶——HDU1880(魔咒词典)

    ---恢复内容开始--- New~ 欢迎参加2016多校联合训练的同学们~ 魔咒词典 Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 3 ...

  5. HDU 1880 魔咒词典(字符串哈希)

    题目链接 Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一 ...

  6. HoloLens外包团队:HoloLens有一个严重缺陷,但微软并不想改

    微软的HoloLens自公布以来,几乎获得了一边倒的赞美声.它使用了增强现实(AR)技术,在现实世界中叠加一层虚拟影像,能让人仿佛置身魔法世界.但从最新的Hololens硬件体验上看,它可能有一个致使 ...

  7. Esfog_UnityShader教程_溶解效果Dissolve

    溶解效果在游戏中是很常见的,比如在一些神话或者魔法世界中,一些NPC角色在剧情需要时候会身体会渐渐的消失掉.甚至有一些更炫的,比如用火焰喷射器把目标燃尽.这些都可以用到溶解效果.这篇文章主要是讲解一下 ...

  8. TYVJ P3407 佳佳的魔法照片 Label:语文很重要 语文很重要 语文很重要

    描述 佳佳的魔法照片(mphoto.pas\c\cpp) [题目背景] 佳佳的魔法照片(Magic Photo):如果你看过<哈利•波特>,你就会知道魔法世界里的照片是很神奇的.也许是因为 ...

  9. c++之map

    题目描述:     哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮 ...

随机推荐

  1. scrapy 的框架的安装

    1.简介: scrapy 是用python写成的一个web 爬虫框架,scrapy 会把大多数在爬取网站时的通用的事给自动化的做了:我最开始爬别人的网站的时候 用的是requests这个库,用这个库我 ...

  2. PHPEXCEL导出excel表格中长数字文本自动转为科学计数法的解决办法

    方法一:前面加空格 $objActSheet->setCellValue('A1', ' '.'330602198804224688'); 方法二: $objActSheet->setCe ...

  3. cocos2dx 3.3 场景切出时RenderTexture crash

    在cocos2dx 3.3中下面myScene在切出时会存在概率性崩溃(代码作了最大程度简化,仅为说明问题): class CmyLayer:public Layer{ public: CmyLaye ...

  4. 请教中文的OCR软件哪个最好?

    对原件,有这几种:1,全中文(含标点,一些英文符号)2,中英文(英文较多,或英文占大多数)3,全英文(这个用finereader8.0) 針對1.2 紫光 超星阅读器自带的OCR组件 尚书七号搞定全中 ...

  5. ios网络层优化深入浅出

    网络层是iOS开发必须掌握的部分,苹果已经将网络请求封装得非常易用了,看看NSURLRequest和NSURLConnection的文档,你就知道怎么用了,这里我就不细讲了.本文主要讲网络层的调用逻辑 ...

  6. 《Effective Java》读书笔记三(类和接口)

    No13 使类和成员的可访问性最小化 要区别设计良好的模块与设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节.模块之间只通过它们的API进行通信,一个 ...

  7. [hihoCoder] #1081 : 最短路径·一

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 万圣节的早上,小Hi和小Ho在经历了一个小时的争论后,终于决定了如何度过这样有意义的一天——他们决定去闯鬼屋! 在鬼屋门口 ...

  8. mysqldump 导出数据库为DBname的表名为Tname的表结构 导出数据库的所有表的表结构

    mysqldump -uroot -p password -d DBname Tname >db.sql #关建点是"-d"参数 导出数据库的所有表的表结构 mysqldum ...

  9. 九、Null在Java中的精确表示

    让我们从下面的语句开始: String x = null; 1.           这个语句具体的做了什么? 回一下什么是变量和什么是值.通常的比喻是变量类似于一个盒子. 就像你可以用盒子来存储东西 ...

  10. {{ }} 和ng-bind

    花括号最后会转换成ng-bind,在一次加载数据的时候,显示花括号,所以使用ng-bind 或者ng-bind-html