UVa 10773 Back to Intermediate Math (数学&速度的分解&陷阱)

10773 - Back to Intermediate Math

Time limit: 3.000 seconds

http://uva.onlinejudge.org/index.php? option=com_onlinejudge&Itemid=8&category=467&page=show_problem&problem=17 14

Umm! So, you claim yourself as an intelligent one? Let me check. As, computer science students always insist on optimization whenever possible, I give you an elementary problem of math to optimize.

You are trying to cross a river of width d meters. You are given that, the river flows at v ms- 1 and you know that you can speed up the boat inu ms-1. There may be two goals how to cross the river: One goal (called fastest path) is to cross it in fastest time, and it does not matter how far the flow of the river takes the boat. The other goal (called shortest path) is to steer the boat in a direction so that the flow of the river doesn't take the boat away, and the boat passes the river in a line perpendicular to the boarder of the river. Is it always possible to have two different paths, one to pass at shortest time and the other at shortest path? If possible then, what is the difference (Let  P s) between the times needed to cross the river in the different ways?

Input

The first line in the input file is an integer representing the number of test cases. Each of the test cases follows below. Each case consists three real numbers (all are nonnegative, d is positive) denoting the value of d, v and u respectively.

Output

For each test case, first print the serial number of the case, a colon, an space and then print "can't determine" (without the quotes) if it is not possible to find different paths as stated above, else print the value of P corrected to three digits after decimal point. Check the sample input & output.

Sample Input

3

8 5 6

1 2 3

1 5 6

Sample Output

Case 1: 1.079
Case 2: 0.114
Case 3: 0.135

请回忆物理必修2。

完整代码:

/*0.015s*/

#include<cstdio>
#include<cmath>

int main(void)
{
    int test, i;
    int d, u, v;
    scanf("%d", &test);
    for (i = 1; i <= test; i++)
    {
        scanf("%d%d%d", &d, &v, &u);
        printf("Case %d: ", i);
        if (u > v && v)///陷阱:v不能为0,因为题目要求是"two different 

paths"
            printf("%.3f\n", d * (1.0 / sqrt(u * u - v * v) - 1.0 / u));
        else
            puts("can't determine");
    }
    return 0;
}

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索at&amp;amp;t汇编语言
, wind river
, test
, river
, to
, and
, of
The
svn10773、intermediate、intermediate goods、upper intermediate、pre intermediate,以便于您获取更多的相关知识。

时间: 2025-01-31 05:48:57

UVa 10773 Back to Intermediate Math (数学&amp;速度的分解&amp;陷阱)的相关文章

UVa 10056 What is the Probability ? (概率&amp;amp;有一个陷阱)

10056 - What is the Probability ? Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=115&page=show_problem&problem=997 Probability has always been an integrated part of computer algorith

轻松掌握JavaScript中的Math object数学对象_基础知识

对于内置的Math数学常项和函数也有一些属性和方法. 比方说, Math对象的 PI 属性会有属性值 pi (3.141...),你可以像这样调用它: Math.PI 同理,标准数学函数也是Math的方法. 这些包括三角函数​​,对数,指数,和其他函数.比方说你想使用三角函数 sin, 你可以这么写: Math.sin(1.56) 需要注意的是Math的所有三角函数参数都是弧度制. 和其他对象不同,你不能够创建一个自己的Math对象.你只能使用内置的Math对象. eg: 1.min( )和ma

JAVA之旅(二十三)——System,RunTime,Date,Calendar,Math的数学运算

JAVA之旅(二十三)--System,RunTime,Date,Calendar,Math的数学运算 map实在是太难写了,整理得我都晕都转向了,以后看来需要开一个专题来讲这个了,现在我们来时来学习一些新的小东西吧 一.System 翻译过来系统的意思,系统类,里面的方法都是静态的,可以直接调用 我们来演示一下吧,先从获取系统信息开始: package com.lgl.hellojava; import java.util.Properties; public class HelloJJAVA

Math单元详解

**************************Math数学单元********************************* Delphi / Kylix 跨平台运行时(Runtime)库 Copyright (c) 1996, 2001 Borland 软件******************************************************************** 这个单元包含高性能的算术.三角.对数.统计和金融方面的计算及FPU程序函数用于补充Delph

《C++语言基础》实践参考——考了语文数学的学生

返回:贺老师课程教学链接 [项目4 - 考了语文数学的学生]下面提供了类Stu的数据成员定义,和用于测试的main函数,参考如图的运行结果,完成类的定义,并用多文件形式组织程序 #include<iostream> using namespace std; class Stu { private: string name; //学生姓名 float chinese; //语文成绩 float math; //数学成绩 //接下去写 }; int main() { Stu s1,s2; s1.s

JavaScript 参考教程

javascript|参考|教程 JavaScript 是使用"对象化编程"的,或者叫"面向对象编程"的.所谓"对象化编程",意思是把 JavaScript 能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编程都以对象为出发点,基于对象.小到一个变量,大到网页文档.窗口甚至屏幕,都是对象.这一章将"面向对象"讲述 JavaScript 的运行情况. 对象的基本知识  对象是可以从 JavaScr

CMake 手册详解(二十)

SirDigit   CMake 手册详解(二十) CMD#51: list 列表操作命令. list(LENGTH <list> <output variable>) list(GET <list> <element index> [<element index> ...] <output variable>) list(APPEND <list> <element> [<element> ...

JavaScript入门教程(3) js面向对象_基础知识

JavaScript 是使用"对象化编程"的,或者叫"面向对象编程"的.所谓"对象化编程",意思是把 JavaScript 能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编程都以对象为出发点,基于对象.小到一个变量,大到网页文档.窗口甚至屏幕,都是对象.这一章将"面向对象"讲述 JavaScript 的运行情况.对象的基本知识 对象是可以从 JavaScript"势力范围"

C语言综合实验1—学生信息管理系统

实验题目:学生信息管理系统 实验要求:用户可以选择1-7可以分别进行学生信息的查看.添加.删除,修改,计算平均成绩,保存,退出系统操作. 提示:用一个结构体类型表示学生信息 1 typedef struct node /*定义结构体*/ 2 { 3 int num; //学号 4 char name[15];//姓名 5 char sex[9]; //性别 6 int age; //年龄 7 int english; //英语成绩 8 int math; //数学成绩 9 int compute