[语言月赛202211] Fear

[语言月赛202211] Fear

GESP二级练习,多层分支嵌套练习,难度★✮☆☆☆。

luogu-B3677 [语言月赛202211] Fear

题目要求

题目描述

在平行宇宙的第五人格,游戏内有一个隐藏的数值,叫做恐慌值

这个数值存在于求生者上,会随监管者追逐求生者的时间增长而变化。

具体的,在求生者未被监管者追逐前,求生者的初始量y0y _ 0。求生者被监管者追逐了 tt 秒。

11 秒时,求生者的恐慌值初始量 y0y _ 0。接下来的每一秒,其恐慌值会被乘上它的初始量

特别的,如果 tt00,那么求生者的恐慌值为 11

如果对于恐慌值的计算方式有疑惑,可以查看样例解释 #1帮助理解。

你需要计算,在追逐 tt 秒后,求生者的恐慌值奇偶性以及正负性

输入格式

输入一行两个整数,使用空格隔开。

第一个整数为 y0y _ 0,代表初始量

第二个整数为 tt,代表追逐时间。

输出格式

输出两行,每行为一个字符串,NOYES

第一行,如果恐慌值为负数,输出 YES,否则输出 NO

第二行,如果恐慌值为奇数,输出 YES,否则输出 NO

样例输入 #1

3 3

样例输出 #1

NO
YES

样例输入 #2

-2 1

样例输出 #2

YES
NO

样例输入 #3

0 1

样例输出 #3

NO
NO

提示

【样例 #1 解释】:

求生者的恐慌值和追逐秒数对应如下:

秒数恐慌值
1133
2299
332727

33 秒追逐后,求生者恐慌值为 2727,是正数、奇数。

【样例 #2 解释】:

11 秒追逐结束后,求生者恐慌值为 2-2,是负数、偶数。

【样例 #3 解释】:

请注意 00 是偶数。

数据规模与约定

对于前 10%10\% 的数据,1y01001 \leq y _ 0 \leq 100t=1t = 1
对于前 20%20\% 的数据,1y01001 \leq y _ 0 \leq 1001t31 \leq t \leq 3
对于前 50%50\% 的数据,0y01090 \leq y _ 0 \leq 10 ^ 90t1030 \leq t \leq 10 ^ 3
对于前 80%80\% 的数据,109y0109-10 ^ 9 \leq y _ 0 \leq 10 ^ 90t1090 \leq t \leq 10 ^ 9
对于 100%100\% 的数据,1018y01018-10 ^ {18} \leq y _ 0 \leq 10 ^ {18}0t1018 0 \leq t \leq 10 ^ {18}

数据保证 y0,ty _ 0, t 不同时为 00


题目分析

本题的关键是找到规律,而不是真正计算出每一步的恐慌值。如:

  • 乘数是偶数,则积一定是偶数,乘数是奇数,积就是奇数
  • 不论正负,只要是偶次幂,积就是正数
  • 负数的奇次幂是负数

{% include custom/custom-post-content-inner.html %}

示例代码

#include <iostream>
using namespace std;
int main() {
    long long y, t; // 定义两个长整型变量y和t
    cin >> y >> t; // 从输入流中读取y和t的值
    if (t == 0) { // 如果t等于0
        cout << "NO" << endl; // 输出"NO"
        cout << "YES"; // 输出"YES"
    } else { // 否则
        if (t % 2 == 0) { // 如果t是偶数
            cout << "NO" << endl; // 输出"NO"
            if (y % 2 == 0) { // 如果y是偶数
                cout << "NO"; // 输出"NO"
            } else { // 否则
                cout << "YES"; // 输出"YES"
            }
        } else { // 如果t是奇数
            if (y < 0) { // 如果y是负数
                cout << "YES" << endl; // 输出"YES"
            } else { // 否则
                cout << "NO" << endl; // 输出"NO"
            }
            if (y % 2 == 0) { // 如果y是偶数
                cout << "NO"; // 输出"NO"
            } else { // 否则
                cout << "YES"; // 输出"YES"
            }
        }
    }
    return 0; // 返回0,表示程序执行成功
}

{% include custom/custom-post-content-footer.md %}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

luogu-”系列题目可在 洛谷题库 在线评测。

bcqm-”系列题目可在 编程启蒙题库 在线评测。

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
Last updated on