Asakura的魔法世界

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;

}

时间: 2024-08-07 00:13:18

Asakura的魔法世界的相关文章

[信息OJ 2467] Asakura的难题

 2467: G Asakura的难题 Time Limit:2000MS Memory Limit:65536KB Description Asakura是班里有名的捣蛋鬼,所以经常有同学到老师那里去告状.今天老师想出个题恶心一下Asakura,题目如下: F(n)=∑| n/i | , (i=1,2,3…..n) |x|为x向下取整,比如|3.5|=3. Asakura想了想,很快就求出了F(n). Input 多组输入 对于每组测试数据: 第一行输入一个整数n(1<=n<=10^10)

窥探 Script 标签(步入现代 Web 开发的魔法世界)

窥探 Script 标签 0x01 什么是 script 标签? script 标签允许你包含一些动态脚本或数据块到文档中,script 标签是非闭合的,你也可以将动态脚本或数据块当做 script 的文本节点.就是内联脚本. 一般我们最常用的就是写一些 JavaScript 脚本在 script 标签里,但是 script 也可以用来存储一些数据,比如当你设置 type="text/react" 的 script 时就可以在里面放 react 代码,但是游览器是不会执行它无法识别的

PAT乙级-1037. 在霍格沃茨找零钱(20)

如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易."现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱. 输入格式: 输入在1行中分别给出P和A,格式为"Galleon.Sickle.Knut",其间用1个空格分隔.这里Galleon是[0, 107]区间内的整数,Sickle是[0, 17)区间

hdu1880

魔咒词典 Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12387    Accepted Submission(s): 3022 Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所

魔咒词典(hdu 1880)

Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词典.当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能:当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒.如果他要的魔咒不在词典中,就输出“what?” Input 首先列出词典中不超过100000条不同的魔咒词条,每条格式为: [魔

【分治】折半查找法

问题 K: [分治]折半查找法 时间限制: 1 Sec  内存限制: 128 MB提交: 17  解决: 9[提交][状态][讨论版] 题目描述 大魔导师培根曾经说过:“读书使人明智,读诗使人聪慧,演算使人精密,哲理使人深刻,伦理学使人有修养,逻辑修辞使人善辩.”由此可见书籍的重要性是不言而喻的.而与书籍天天打交道的图书管理员,更是夺天地之造化,吸日月之精华的“神之职业”.据史料记载,魔法世界从古至今诞生的众多不平凡的人物中,有不少人都曾经做过“图书管理员”,如道家学派创始人老子,威软公司创始人

魔咒词典------HDOJ杭电1880(字符串的处理,很简单)

Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词典.当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能:当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒.如果他要的魔咒不在词典中,就输出"what?" Input 首先列出词典中不超过100000条不同的魔咒词条,每条格式

英语电影剧本大全(中英对照)

目     录 <泰坦尼克号>全部英文剧本 TV REPORTER: Treasure hunter Brock Lovett is best known for finding Spanish gold off islands in the best Caribbean. LIZZY: It’s OK, I’ll get you in a minutes. Come on. TV REPORTER: Now he is using Russian subs to reach the most

hdu 1880 魔咒词典

题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1880 魔咒词典 Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助. 给你一部魔咒词典.当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能:当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒.如果他要的魔咒不在词典中,就输