【GESP】C++二级练习 luogu-B3677, [语言月赛202211] Fear
GESP二级练习,多层分支嵌套练习,难度★✮☆☆☆。
luogu-B3677 [语言月赛202211] Fear
题目要求
题目描述
在平行宇宙的第五人格,游戏内有一个隐藏的数值,叫做恐慌值。
这个数值存在于求生者上,会随监管者追逐求生者的时间增长而变化。
具体的,在求生者未被监管者追逐前,求生者的初始量为 $y _ 0$。求生者被监管者追逐了 $t$ 秒。
第 $1$ 秒时,求生者的恐慌值为初始量 $y _ 0$。接下来的每一秒,其恐慌值会被乘上它的初始量。
特别的,如果 $t$ 为 $0$,那么求生者的恐慌值为 $1$。
如果对于恐慌值的计算方式有疑惑,可以查看样例解释 #1帮助理解。
你需要计算,在追逐 $t$ 秒后,求生者的恐慌值的奇偶性以及正负性。
输入格式
输入一行两个整数,使用空格隔开。
第一个整数为 $y _ 0$,代表初始量。
第二个整数为 $t$,代表追逐时间。
输出格式
输出两行,每行为一个字符串,
NO
或YES
。第一行,如果恐慌值为负数,输出
YES
,否则输出NO
。第二行,如果恐慌值为奇数,输出
YES
,否则输出NO
。
样例输入 #1
1
3 3
样例输出 #1
1
2
NO
YES
样例输入 #2
1
-2 1
样例输出 #2
1
2
YES
NO
样例输入 #3
1
0 1
样例输出 #3
1
2
NO
NO
提示
【样例 #1 解释】:
求生者的恐慌值和追逐秒数对应如下:
秒数 | 恐慌值 |
---|---|
$1$ | $3$ |
$2$ | $9$ |
$3$ | $27$ |
在 $3$ 秒追逐后,求生者恐慌值为 $27$,是正数、奇数。
【样例 #2 解释】:
在 $1$ 秒追逐结束后,求生者恐慌值为 $-2$,是负数、偶数。
【样例 #3 解释】:
请注意 $0$ 是偶数。
数据规模与约定
对于前 $10\%$ 的数据,$1 \leq y _ 0 \leq 100$,$t = 1$。
对于前 $20\%$ 的数据,$1 \leq y _ 0 \leq 100$,$1 \leq t \leq 3$。
对于前 $50\%$ 的数据,$0 \leq y _ 0 \leq 10 ^ 9$,$0 \leq t \leq 10 ^ 3$。
对于前 $80\%$ 的数据,$-10 ^ 9 \leq y _ 0 \leq 10 ^ 9$,$0 \leq t \leq 10 ^ 9$。
对于 $100\%$ 的数据,$-10 ^ {18} \leq y _ 0 \leq 10 ^ {18}$,$ 0 \leq t \leq 10 ^ {18}$。
数据保证 $y _ 0, t$ 不同时为 $0$。
题目分析
本题的关键是找到规律,而不是真正计算出每一步的恐慌值。如:
- 乘数是偶数,则积一定是偶数,乘数是奇数,积就是奇数
- 不论正负,只要是偶次幂,积就是正数
- 负数的奇次幂是负数
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#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,表示程序执行成功
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
GESP各级别考纲要点、知识拓展和练习题目清单详见C++学习项目主页
“luogu-”系列题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
“bcqm-”系列题目可在编程启蒙题库进行在线评测。