码蹄集 - MT2095 · 曲径折跃

Posted Tisfy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了码蹄集 - MT2095 · 曲径折跃相关的知识,希望对你有一定的参考价值。

传送门


曲径折跃

时间限制:1秒
空间限制:128M


题目描述

小码哥特别狠,经常会把队友送到一些奇奇怪怪的地方去。这一次,他又将曲径折跃放在了jiejie的脚下。由于jiejie不想被打乱自己的节奏,所以他选择赶紧逃出升天。jiejie玩的是皇子,技能eq连招能位移x码的距离,eq位移是不消耗时间的。同时,jiejie的移动速度为n码每秒,曲径折跃的半径为r码。jiejie的技能可能在cd,e和q任意一个技能在cd都不能使用技能位移。曲径折跃生效时间为2秒。现在他想知道自己能不能逃出曲径折跃


输入描述

5个整数

e:e技能cd(为0时可使用)

q:q技能cd

x:移动距离

n:移速

r:半径

数据范围

e、q为非负整数,x、r、n为正整数


输出描述

如果能逃出输出yes

否则输出no


样例一

输入

0 0 500 100 700

输出

yes

这道题我读了很久(可能是因为没咋玩过LOL)

读懂题目后就很简单了

题目大意

问你 2 2 2秒内,能否移动 ≥ r \\geq r r的距离。

移动方式有两种:

  1. 步行:每秒可以移动 n n n
  2. 瞬移:不消耗时间,可以瞬间移动 x x x米。但是前提是 e ≤ 2 且 q ≤ 2 e\\leq 2且q\\leq 2 e2q2

题目分析

读懂了题目后,直接模拟即可。

两秒内,步行可以移动 2 × n 2\\times n 2×n米,

如果 e ≤ 2 且 q ≤ 2 e\\leq 2且q\\leq 2 e2q2 ,那么还可以再瞬移 x x x米。

看最终移动距离是否 ≥ r \\geq r r即可。

AC代码

/*
 * @Author: LetMeFly
 * @Date: 2022-07-21 10:29:45
 * @LastEditors: LetMeFly
 * @LastEditTime: 2022-07-21 10:33:26
 */
#include <bits/stdc++.h>
using namespace std;
#define mem(a) memset(a, 0, sizeof(a))
#define dbg(x) cout << #x << " = " << x << endl
#define fi(i, l, r) for (int i = l; i < r; i++)
#define cd(a) scanf("%d", &a)
typedef long long ll;
int main() 
    int e, q, x, n, r;
    cin >> e >> q >> x >> n >> r;
    r -= 2 * n;
    if (e <= 2 && q <= 2)
        r -= x;
    if (r <= 0)
        puts("yes");
    else
        puts("no");
    return 0;

虽然代码可以复制,但最好还是自己理解后再敲哦

原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/125909920

以上是关于码蹄集 - MT2095 · 曲径折跃的主要内容,如果未能解决你的问题,请参考以下文章

码蹄集 - MT3111· 赋值

算法竞赛入门码蹄集新手村600题(MT1501-1550)

算法竞赛入门码蹄集新手村600题(MT1401-1450)

算法竞赛入门码蹄集新手村600题(MT1201-1250)

算法竞赛入门码蹄集新手村600题(MT1551-1600)

算法竞赛入门码蹄集新手村600题(MT1351-1400)