B3729 [信息与未来 2017] 龟兔赛跑 题解

· · 题解

发现很多人把这题复杂化了 不就是个小学数学的(把我难倒2天的)追及问题吗(以下 ‘简称 ’ “坠机问题”)

这里给出一个 信息与未来 的史上最短代码

更好的悦读体验

题意简述(有改动)

乍一看题目:乌龟这下没办法确定比赛到底公平不公平了,所以请你来帮忙。假设乌龟每分钟可以跑 x 米,兔子每分钟跑y 米(x<y)。他希望你计算最大的整数赛跑距离 (米),满足乌龟能在兔子先睡 t 分钟的前提下,比兔子更早或同时到达终点。

头是不是有点晕???

现在我们把它简化一下:乌龟每分钟可以跑 x 米,兔子每分钟跑 y 米。现在兔子在0米处,乌龟在t*x 米处,问多少分钟后,兔子和乌龟相遇?

现在应该可以看出来了吧:这就是一道简简单单的 坠机 追及问题(或者说是 相遇 香芋问题)

思路

坠机问题公式:(走得快速度-走得慢速度)×时间=走得快比走得慢多走的路程,所以,*时间=多走的路程$(tx)÷速度差(y-x)$**

因此,本道题的核心代码就一行:

t*x/(y-x)*y

最后,别忘了向下取整!!!别忘了向下取整!!!别忘了向下取整!!!

参考代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    double x,y,t;
    cin>>x>>y>>t;
    cout<<floor(t*x/(y-x)*y);
    return 0;
}

实际上就三行史上最短代码