SDuT OJ-2891玲珑龟

探讨一只名为Leemenglin的玲珑龟如何通过计算最优路径,从起点直线到达食物点,考虑到每步的最小和最大步长限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

玲珑龟

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

话说最近Soaring在宿舍养了一只玲珑的龟,名曰Leemenglin,突然有一天这只Leemenglin龟饿了,想要吃东西,在它前面有食物,食物与它的直线距离是x厘米,而且这只玲珑龟每一步最少是n厘米,最多是m厘米(意思是每步步长在n与m之间且为整数即可)。这只龟很聪明,知道两点之间直线最短,于是它毅然决定走直线去找食物。然而这只玲珑龟竟然不会后退。。。于是它必须要正好爬到有食物的地方,不能超出。假如它可以走无数步的话,那么它能否正好吃到食物呢?能吃到的话输出Yes,不能的话输出No。

输入

输入一个t,表示测试数据组数,然后后面t行,每一行代表一组测试数据,包括三个整数x, n, m;(1<=n<=m<=10^9,1<=x<=10^9);

输出

每组测试数据输出Yes或No。

示例输入

3
5 2 3
6 4 5
17 3 5

示例输出

Yes
No
Yes

提示


题目很好,很考察思维,如果改为打印 其中一组解得话,那题目会更好;

由此题延伸 :t = x \ n;t1 = x \ m ;t是乌龟所走的极限最多步骤,t1是最少步骤;

如果能到达, x1步最小步 + x2步最大步 <= t

#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
    int c;

    scanf("%d",&c);
    while(c--)
    {
       long long int x,n,m;
        int t;
        cin>>x>>n>>m;
        t = x / n;
        if(x >= t * n && t * m >=x)
        {
            printf("Yes\n");
        }
        else
            printf("No\n");
    }
    return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值