传送门

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
Special Judge

Problem Description
There is a river on the Cartesian coordinate system,the river is flowing along the x-axis direction.

Rower Bo is placed at $(0,a)$ at first.He wants to get to origin $(0,0)$ by boat.Boat speed relative to water is $v_1$,and the speed of the water flow is $v_2$.He will adjust the direction of $v_1$ to origin all the time.

Your task is to calculate how much time he will use to get to origin.Your answer should be rounded to four decimal places.

If he can't arrive origin anyway,print "Infinity" (without quotation marks).

Input
There are several test cases. (no more than 1000)

For each test case,there is only one line containing three integers $a,v_1,v_2$.

$0\le a\le 100, 0\le v1,v2,\le 100, a,v_1,v_2$ are integers

Output
For each test case,print a string or a real number.

If the absolute error between your answer and the standard answer is no more than $10^{-4}$, your solution will be accepted.

Sample Input

2 3 3
2 4 3

Sample Output

Infinity
1.1428571429

Source
2016 Multi-University Training Contest 3


这题在现场做的时候试图直接解微分方程,但微分方程推出来却发现没法解,但题解上说,直接解微分方程可以搞,可能是我推微分方程的姿势不对,有待研究,微积分快忘干净了,好惨。

我现场的思路是:

考虑直角坐标下的运动学方程:

\begin{align} \frac{dx}{dt} &= v_2-\frac{x}{\sqrt{x^2+y^2}}v_1  \\       \frac{dy}{dt} &= -\frac{y}{\sqrt{x^2+y^2}}v_1  \end{align}

注意到如果将运动学方程写成直角坐标$(r,\theta)$的形式会更方便:

由$x=r\cos{\theta}, y=r\sin{\theta}, r=\sqrt{x^2+y^2}$, 上面两式可化成:

\begin{align} \cos{\theta} \, \dot{r} -\dot{\theta}\sin{\theta} \, r &= v_2-v_1\cos{\theta} \\ \sin{\theta} \, \dot{r} + \cos{\theta} \, \dot{\theta} r &= -v_1\sin{\theta} \end{align}

由上述两方程可解出$\dot{r}, r$:

\begin{align} \dot{r} &= v_2\cos{\theta}-v_1 \\  r &= -\frac{v_2\sin{\theta}}{\dot{\theta}}   \end{align}

将上两式代入

\begin{align}  \dot{r}=\frac{dr}{dt}   \end{align}

\begin{align}  \frac{v_2\sin{\theta} \, \ddot{\theta}}{\dot{\theta}^2}-v_2\cos{\theta} = v_2\cos{\theta}-v_1  \end{align}

要从这个微分方程解出$\theta=\theta(t)$比较困难,我目前还解不出。

这个微分方程是可解的:

\[ \frac{d\theta}{dt} = f \]

\[ \frac{d^2\theta}{dt^2} = \frac{df}{dt} =\frac{df}{d\theta}\frac{d\theta}{dt} = \frac{df}{d\theta}f \]

将上两式代入原方程,得

\[ \frac{df}{f} = \frac{2v_2\cos{\theta} - v_1}{v_2 \sin{\theta}} d\theta = (2\cot{\theta} -\frac{v_1}{v_2}\csc{\theta}) d\theta \]

积分得

\[ \ln{f} = 2\ln{| \sin{\theta} |} - \frac{v_1}{v_2}\ln{| \csc{\theta} -\cot{\theta} |} +C_1 \]

\[ f(\theta) = C_2\frac{\sin^2{\theta}} {|\csc{\theta}-\cot{\theta}|^{ \frac {v_1} {v2} } } \]

但到这一步貌似也没什么用,就算把右边的关于$\theta$的积分积出来,还要再求反函数才能得到$\theta (t)$。再次好惨。。

可能如果选择解$r=r(t)$会简单一点,再试试吧。。逃。。。


题解上给出的做法是:

\[ \frac{dr}{dt} = v_2\cos{\theta}-v_1 \]

\[ \frac{dx}{dt} = v_2-\frac{x}{\sqrt{x^2+y^2}}v_1 = v_2 - v_1 \cos{\theta}\]

实际上第一式($\frac{dr}{dt}$的表达式)可直接写出来,不需要像上面那样去推导。由于题目已说明船相对于水流的速度时刻指向原点,那么自然有$ \frac{dr}{dt} = v_2\cos{\theta}-v_1 $

两式对$t$积分,从时刻$0$积到(到达原点的)时刻$T$,这两个定积分就写成:

\[ 0-a = - v_1T + v_2\int_{0}^{T}{\cos{\theta} \, \text{d}\theta}  \]

\[0-0 = v_2T - v_1 \int_{0}^{T}{\cos{\theta} \, \text{d}\theta} \]

这样便可解出

\[ T = \frac{v_1a}{v_1^2 - v_2^2} \]

从而不能到达原点的情况是 $a>0$且$v_1\le v_2$。

HDU 5761 Rower Bo的更多相关文章

  1. hdu 5761 Rower Bo 物理题

    Rower Bo 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5761 Description There is a river on the Ca ...

  2. hdu 5761 Rower Bo 微分方程

    Rower Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  3. 【数学】HDU 5761 Rower Bo

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5761 题目大意: 船在(0,a),船速v1,水速v2沿x轴正向,船头始终指向(0,0),问到达(0, ...

  4. hdu 5761 Rowe Bo 微分方程

    1010 Rower Bo 首先这个题微分方程强解显然是可以的,但是可以发现如果设参比较巧妙就能得到很方便的做法. 先分解v_1v​1​​, 设船到原点的距离是rr,容易列出方程 \frac{ dr} ...

  5. hdu-5761 Rower Bo(数学)

    题目链接: Rower Bo Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 131072/131072 K (Java/Others ...

  6. HDU 5761 物理题

    Rower Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  7. HDU 5752 Sqrt Bo (数论)

    Sqrt Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5752 Description Let's define the function f ...

  8. HDU 5753 Permutation Bo (推导 or 打表找规律)

    Permutation Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5753 Description There are two sequen ...

  9. HDU 5762 Teacher Bo (暴力)

    Teacher Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5762 Description Teacher BoBo is a geogra ...

随机推荐

  1. 我的Logo设计简史

    近日,日本东京奥运会会微因涉嫌抄袭而被弃用的新闻引起设计界的一翻热论.在此我想到自己的LOGO设计,虽说并一定不好看甚至自己看回来都觉得略丑,但 几乎没有过抄袭的念头.有句话说,不想当设计师的程序猿不 ...

  2. 几张图弄明白ios布局中的尺寸问题

    背景 先说说逆向那事.各种曲折..各种技术过时,老老实实在啃看雪的帖子..更新会有的. 回正题,这里讨论的是在Masnory框架下的布局问题.像我这种游击队没师傅带,什么都得自己琢磨,一直没闹明白下面 ...

  3. 用nhibernate的几点小经验

    最近几个月都在用nhibernate做项目.写几点经验. 1. 解决Transient object exception 原项目是用Entity Framework做的.现在是用nhibernate代 ...

  4. OSPF协议详解

    CCNP OSPF协议详解 2010-02-24 20:30:22 标签:CCNP 职场 OSPF 休闲 OSPF(Open Shortest Path Fitst,ospf)开放最短路径优先协议,是 ...

  5. ContentProvider备份短信,以xml文件存储

    因为短信的内容已经通过ContentProvider暴露出来,所以我们可以直接用内容解析者获取短信内容. 想要获取短信内容,你需要知道的一些东西: 1.Uri uri = Uri.parse(&quo ...

  6. XML是什么东西

    记住,XML就是为数据传输而设计的一种标记语言,也是特么的一种标记语言,在这点上,和html是有点类似的,你看<xml>和<html>看上去难道不是很像嘛,而html是为数据显 ...

  7. rhel7修改网卡命名规则

    1步:当安装完红帽RHEL7系统安装完成,您的网卡命名是这样的. 第2步:请编辑网卡的配置文件 将”/etc/sysconfig/network-scripts/ifcfg-eno16777736“的 ...

  8. webpack入坑之旅(三)webpack.config入门

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

  9. static 静态导包

    静态导入 ArrayUtils 类的 INDEX_NOT_FOUND 属性和 add 方法 import static org.apache.commons.lang3.ArrayUtils.INDE ...

  10. hdu1521 指数型母函数

    排列组合 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...