• topcoder SRM 623 DIV2 CatAndRat


    解决本题的一个关键点就是当Cat进入时,此时Rat在哪个位置?

    注意移动方向可以随时改变,由于是圆环,故离入口最远点的距离是pi*R,即圆的一半,

    当cat进入时(cat的速度大于rat的速度,否则不可能追上)

      如果rat移动的距离小于圆环的一半,即此时rat的位置为移动最远的位置

      如果rat移动的距离大于圆环的一半,则可以在pi*R附近摇摆,当cat进入则刚好rat在pi*R即可

    之后保持与rat相同的方向即可

    #include <iostream>
    #include <algorithm>
    using namespace std;
    const double pi = acos(-1.0);
    class CatAndRat{
    public:
        double getTime(int R, int T, int Vrat, int Vcat){
            if(Vrat >= Vcat) return -1.0;
            else return min(pi*R,(double)Vrat*T)/(Vcat-Vrat);
        }
    };
  • 相关阅读:
    Guava的学习2
    Guava的学习1
    数据结构
    二叉搜索树的第k个结点
    滑动窗口的最大值
    僵尸进程和孤儿进程
    fork和vfork,exec
    扑克牌顺子
    字符流中第一个不重复的字符
    表示数值的字符串
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3771211.html
Copyright © 2020-2023  润新知