zoukankan      html  css  js  c++  java
  • HDU 5761 友谊的小船 (多校)

    题意:

    一人刚开始在(0,a)点,水速是v2(方向是x轴),船速是v1(方向任意),问到达(0,0)的最少时间?

    分析:

    这题当时队友过的,贴一下官方题解。

    首先这个题微分方程强解显然是可以的,但是可以发现如果设参比较巧妙就能得到很方便的做法。

    先分解v1v1

    Alt text

    设船到原点的距离是rr,容易列出方程

    drdt=v2cosθ−v1dtdr=v2cosθv1

    dxdt=v2−v1cosθdtdx=v2v1cosθ

    上下界都是清晰的,定积分一下:

    0−a=v2∫0Tcosθdt−v1T0a=v20Tcosθdtv1T

    0−0=v2T−v1∫0Tcosθdt00=v2Tv10Tcosθdt

    直接把第一个式子代到第二个里面

    v2T=v1v2(−a+v1T)v2T=v2v1(a+v1T)

    T=v1av12−v22T=v12v22v1a

    这样就很Simple地解完了,到达不了的情况就是v1<v2v1<v2(或者a>0a>0v1=v2v1=v2)。


    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int a,v1,v2;
        while(~scanf("%d%d%d",&a,&v1,&v2)){
            int x=a*v1;
            int y=v1*v1-v2*v2;
            if(a==0)puts("0");
            else if(y<=0)printf("Infinity
    ");
            else printf("%.10lf
    ",x*1.0/y);
    
        }
        return 0;
    }

  • 相关阅读:
    cocos2d-x 3.0 事件分发机制
    cocos2d-x Schedule详解
    OSG设置警告等级
    OSG四元数与欧拉角之间的转换
    编译OSG_FBX插件
    RakNet发送与接收数据
    RakNet基本教程
    IE不能上网,但是其他浏览器可以
    OSG计时器与时间戳
    添加OSG各种事件处理器
  • 原文地址:https://www.cnblogs.com/01world/p/5762825.html
Copyright © 2011-2022 走看看