龟兔赛跑预测-进阶题6

龟兔赛跑预测

题目

  • 问题描述
    话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点------喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病------骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致------它们不到终点决不停止。
      然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据------兔子的速度v1(表示每秒兔子能跑v1米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l------就能预测出比赛的结果。但是小华很懒,不想通过手工计算推测出比赛的结果,于是他找到了你请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果。

  • 输入说明
    输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2<=100;t<=300;s<=10;l<=10000且为v1,v2的公倍数)

  • 输出说明
    输出包含两行,第一行输出比赛结果------一个大写字母"T"或"R"或"D",分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。
    第二行输出一个正整数,表示获胜者(或者双方同时)到达终点所耗费的时间(秒数)。
    比如:
    输入
    10 5 5 2 20
    输出
    D
    4
    输入
    10 5 5 1 20
    输出
    R
    3

  • 输入范例

    10 5 5 3 20

  • 输出范例

    T
    4

解题思路

  • 本题思路是通过 逐秒模拟比赛过程(模拟算法) 来判断兔子和乌龟的比赛结果。设兔子的速度为 v1,乌龟的速度为 v2,赛道长度为 l。从第 1 秒开始,每一秒都更新两者的行进距离:乌龟每秒都会前进 v2米,而兔子通常每秒前进 v1米。但在每一秒结束后,如果兔子发现自己 领先乌龟达到或超过 t 米,则兔子会 停止跑步休息 s 秒,在休息期间兔子不移动,但乌龟仍然继续前进。可以用一个变量记录兔子剩余休息时间,当休息时间大于0时兔子不移动并减少休息计数。每秒更新两者位置后判断是否到达或超过终点 l,一旦有人到达终点就结束模拟,根据两者到达终点的情况判断是 兔子胜(R)、乌龟胜(T) 还是 同时到达(D),并输出对应耗费的时间。

整体代码

cpp 复制代码
#include <iostream>
using namespace std;

int main()
{
    int v1, v2, t, s, l;
    cin >> v1 >> v2 >> t >> s >> l;

    int rabbit = 0, turtle = 0;
    int time = 0;
    int rest = 0; // 兔子剩余休息时间

    while(rabbit < l && turtle < l)
    {
        time++;

        // 兔子移动或休息
        if(rest > 0)
        {
            rest--;
        }
        else
        {
            rabbit += v1;
        }

        // 乌龟移动
        turtle += v2;

        // 每秒结束判断是否需要休息
        if(rest == 0 && rabbit - turtle >= t)
        {
            rest = s;
        }
    }

    if(rabbit >= l && turtle >= l)
        cout << "D" << endl;
    else if(rabbit >= l)
        cout << "R" << endl;
    else
        cout << "T" << endl;

    cout << time << endl;

    return 0;
}

注意事项

  • 注意休息判断发生在"秒结束"。

英文段落翻译

自己翻译

当今的最好销售的多功能打印机使用墨水喷射或者激光科技,并且也能作为扫描器,复印机和传真机器。喷墨打印机有一个喷嘴样的打印头,它把墨水喷射到纸上形成文字和图像。在彩色喷墨打印机的喷头由一系列的喷嘴组成,每一个都有着他们各自的墨盒。激光打印机和照片复印机有着相同的科技,来在一个光明磁鼓上绘画光束。带静电的墨水覆盖在磁鼓上,然后转移到纸上。一个基础的激光打印产品,只能是黑白的打印输出。彩色激光打印机是可行的,但是它们比起基础的黑白模型无论如何是更昂贵的。这种在纸上沉积墨水的科技是3d打印机的基础,它沉积建造一个3d物品的塑料,树脂或者金属的层。有几种另外的制造技术,但是大部分消费者级别的3d打印机使用叫做熔融沉积成型的科技,它融化缠绕的细丝,然后在加固和形成一个物品的层上沉积它。

四、存储硬件

计算机的主存集成在叫做存储单元的管理集合中。为了反映在任何规则下访问存储单元的能力,计算机的主存通常叫做随机存储器。随机存储器是微处理器的等待房间它。存储待处理的新数据,处理数据的程序指令以及控制一个计算机系统基础功能的操作系统指令。它也存储处理的结果,直到它们能够被移动到一个更长久的位置。

AI翻译

当今最畅销的多功能打印机采用喷墨或激光技术,同时可用作扫描仪、复印机和传真机。喷墨打印机有一个喷嘴状的打印头,可将墨水喷射到纸张上,形成字符和图形。彩色喷墨打印机的打印头由一系列喷嘴组成,每个喷嘴都配有独立的墨盒。激光打印机采用与复印机相同的技术,将光点投射到光敏感光鼓上。带有静电电荷的墨粉被吸附到感光鼓上,然后转印到纸张上。基本的激光打印机仅能输出黑白打印件。彩色激光打印机虽已问世,但其价格略高于基础黑白型号。

将墨水沉积到纸张上的技术,是 3D 打印机的基础------后者通过逐层沉积塑料、树脂或金属材料,构建出三维物体。3D 打印在技术上被称为增材制造。增材制造技术有多种,但大多数消费级 3D 打印机采用一种称为熔融沉积成型(FDM)的技术,该技术将盘绕的丝材熔化,并逐层沉积,使其硬化后形成物体。

四、存储硬件

计算机的主存储器被组织成称为单元的可管理单位。为了体现能够以任意顺序访问这些单元的能力,计算机的主存储器通常被称为随机存取存储器(RAM)。RAM 是微处理器的"等候区"。它存放着等待处理的原始数据、用于处理这些数据的程序指令,以及控制计算机系统基本功能的操作系统指令。同时,它也保存着处理结果,直到这些结果可以被移至更永久的存储位置。

单词打卡

下一篇

待续

相关推荐
云泽8082 小时前
蓝桥杯算法精讲:贪心算法的简单应用与题解
算法·贪心算法·蓝桥杯
程序员夏末2 小时前
【LeetCode | 第四篇】算法笔记
笔记·算法·leetcode
DeepModel2 小时前
【概率分布】多项分布详解
算法·概率论
_日拱一卒2 小时前
LeetCode(力扣):只出现一次的数字
java·数据结构·算法
bulingg2 小时前
LR逻辑回归详解
算法·机器学习·逻辑回归
七七肆十九2 小时前
PTA 习题4-7 最大公约数和最小公倍数
数据结构·算法
NGC_66112 小时前
八大排序对比及实现
数据结构·算法·排序算法
进击的小头2 小时前
第7篇:动态规划的数值求解算法
python·算法·动态规划
FMRbpm2 小时前
斑马日记2026.3.13
数据结构·算法