Zirnc's Blog

Recent content on Zirnc's Blog

马上订阅 Zirnc's Blog RSS 更新: https://blog.chungzh.cn/index.xml

CSP-J/S2022 题解与反思

2022年11月5日 08:00

学校 OI 停(tui yi)了,周末有空的时候补补。

J

T1 乘方

Luogu-P8813 [CSP-J 2022] 乘方

如果 $a^b$ 的值不超过 ${10}^9$,则输出 $a^b$ 的值,否则输出 -1。数据范围:$1 \le a, b \le {10}^9$。

$2^{30}=1073741824 > 10^9$,所以循环最多 29 次就能判断是否超过 $10^9$。注意 $1$ 的任何次幂都是 $1$,不能进行循环,特判一下即可。

 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
#include <bits/stdc++.h>
using namespace std;
const long long MAXX = 1e9;
int main()
{
 long long a, b;
 cin >> a >> b;
 if (a == 1) {
 cout << 1 << endl;
 } else {
 long long s = 1;
 bool flag = 0;
 for (long long i = 1; i <= b && s*a <= MAXX; i++) {
 s *= a;
 if (i == b) {
 flag = 1;
 }
 }
 if (!flag) {
 cout << -1 << endl;
 } else {
 cout << s << endl;
 }
 }
 return 0;
}

T2 解密

Luogu-P8814 [CSP-J 2022] 解密

给定一个正整数 $k$,有 $k$ 次询问,每次给定三个正整数 $n_i, e_i, d_i$,求两个正整数 $p_i...

剩余内容已隐藏

查看完整文章以阅读更多