Skip to content

Commit 37a1e25

Browse files
author
DeepChirp
committed
feat: add problem content
1 parent 3976e14 commit 37a1e25

File tree

224 files changed

+12074
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

224 files changed

+12074
-0
lines changed

2023-09-16/2023-09-16_E.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
## 题目描述
2+
相信大家在初高中的时候一定学过阶乘与双阶乘吧!
3+
4+
现在给定你两个自然数 $a,b$ ,请你求出 $a!$ 与 $b!!$ 的大小关系。
5+
6+
## 输入
7+
第一行两个自然数 $a,b$ ,保证 $0\le a\le 10, 0\le b\le 15$
8+
## 输出
9+
输出共两行
10+
11+
第一行两个正整数,分别代表 $a!$ 与 $b!!$
12+
13+
第二行请按 $a,b$ 的大小关系输出 `a!>b!!` , `a!=b!!` 或者 `a!<b!!`
14+
## 输入样例
15+
4 7
16+
## 输出样例
17+
24 105
18+
a!<b!!
19+
20+
##样例解释:
21+
$4!=4 \cdot 3 \cdot 2 \cdot 1 = 24$
22+
23+
$7!! = 7 \cdot 5 \cdot 3 \cdot 1 = 105$
24+
25+
##Hint:
26+
阶乘的定义:$$n! = 1 \cdot 2 \cdot 3 \cdot \ldots \cdot (n-1) \cdot n = \prod_{i=1}^{n} i
27+
$$
28+
29+
双阶乘的定义:
30+
31+
当 $n$ 为奇数时:
32+
33+
$$n!! = n \cdot (n-2) \cdot (n-4) \cdot \ldots \cdot 3 \cdot 1
34+
$$
35+
36+
当 $n$ 为偶数时:
37+
38+
$$n!! = n \cdot (n-2) \cdot (n-4) \cdot \ldots \cdot 4 \cdot 2$$
39+
40+
特别地, $0!=0!!=1$ 。

2023-09-16/2023-09-16_F.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
## 题目描述
2+
新学期到了,寺子屋迎来了一批人里的新生小朋友。为了掌握大家的基本学习情况, Kamishirasawa Keine 老师开展了一次入学考试。作为助教的你,请帮忙统计一下小朋友们的平均分和及格人数吧!最终结果向下取整。
3+
4+
## 输入
5+
6+
第一行一个整数 $a$,表示及格线。
7+
8+
第二行若干个整数 $k\_i$,以空格分隔,表示第 $i$ 个学生的成绩。
9+
10+
第三行输入 `-1`,表示输入结束。
11+
12+
## 输出
13+
14+
一行三个整数,以一个空格分隔,分别表示及格人数、所有学生的平均分和及格学生的平均分。若没有学生及格,则第三个整数输出 `-1`
15+
16+
## 输入样例
17+
60
18+
100 105 30 66
19+
-1
20+
21+
## 输出样例
22+
3 75 90
23+
24+
## 数据范围
25+
26+
$0 \leq a,k\_i \leq 1000$,保证所有分数总和在 `int` 范围内。
27+

2023-09-16/2023-09-16_G.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
## 题目背景
2+
3+
两校区优购商贸超市正式营业。
4+
5+
提供电话订购和微商城购物,两校区免费送货上门。
6+
7+
优购超市学院路店电话:82338285
8+
9+
沙河校区店电话:61716973
10+
11+
两校区优购超市也可通过微信“北航生活”、“北航优购超市” 选择微商城购物,免费配送。
12+
13+
## 题目描述
14+
优购超市里有苹果(apple)和香蕉(banana)。初始时刻,czx 持有 $x$ 元且没有任何水果,水果店有 $a$ 个苹果和 $b$ 个香蕉,其中每个苹果 $3$ 元,每个香蕉 $2$ 元。
15+
16+
在优购超市购买水果可以增加 czx 手中的对应的水果数目。对于一种水果,只有 czx 的钱足够购买它,并且店内这种水果的数量大于 $0$ 时才可以成功购买这种水果,否则购买失败。
17+
18+
吃水果会减少 czx 手中水果数目,只有 czx 手中某种水果的数目大于 $0$ czx 才可以食用这种水果,否则食用失败。
19+
20+
czx 在一周内进行了 $n$ 次买水果或吃水果的举动,czx 想知道它的每一次举动是否成功了。对于每一次举动,如果成功,则输出一行 ``Ok!``,否则输出一行 ``Failed!``
21+
22+
最后,czx 还想知道优购超市现在还剩下多少个苹果和香蕉,以及他还剩下多少钱。
23+
24+
## 输入
25+
第一行 $4$ 个正整数,分别表示 czx 总的举动次数 $n$($1 \leq n \leq 500$),czx 初始的余额 $x$($0 \leq x \leq 2000$),优购超市初始的苹果数量和香蕉数量 $a$,$b$($0 \leq a,b \leq 1000$)。
26+
27+
第 $2$ 至 $n+1$ 行,每行两个整数 $u$,$v$,保证 $u,v \in \\{0,1\\}$。
28+
29+
其中, $u$ 表示举动的类型,$0$ 表示购买一个水果,$1$ 表示食用一个水果;$v$ 表示水果的种类,$0$ 表示苹果,$1$ 表示香蕉。
30+
31+
## 输出
32+
输出包含 $n+1$ 行。
33+
34+
第 $1$ 至 $n$ 行依次表示每次举动成功与否,成功输出 `Ok!`,失败输出 `Failed!`
35+
36+
第 $n+1$ 行输出 $3$ 个整数,分别是优购超市剩下的苹果数量、香蕉数量和 czx 的余额,中间用一个空格分开。
37+
38+
## 输入样例
39+
40+
5 20 5 5
41+
1 1
42+
1 0
43+
0 1
44+
1 0
45+
1 1
46+
47+
## 输出样例
48+
49+
Failed!
50+
Failed!
51+
Ok!
52+
Failed!
53+
Ok!
54+
5 4 18
55+
56+
## 样例解释
57+
58+
初始有 $20$ 元,超市有 $5$ 个苹果和 $5$ 个香蕉,czx 没有苹果也没有香蕉。
59+
60+
第一次举动,尝试食用香蕉,但是 czx 没有香蕉,失败。
61+
62+
第二次举动,尝试食用苹果,但是 czx 没有苹果,失败。
63+
64+
第三次举动,尝试购买香蕉,优购超市内还有香蕉,czx 的余额也买得起香蕉,成功。余额变为 $18$,优购超市内剩下 $4$ 个香蕉,czx 拥有 $1$ 个香蕉。
65+
66+
第四次举动,尝试食用苹果,但是 czx 没有苹果,失败。
67+
68+
第五次举动,尝试食用香蕉,czx 拥有香蕉,成功。czx 没有香蕉了。
69+
70+
最后,czx 还剩下 $18$ 元,优购超市内剩下 $5$ 个苹果和 $4$ 个香蕉。
71+
72+
*Author:czx*
73+

2023-09-16/2023-09-16_H.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
## 题目描述
2+
3+
​ 这一天,小杨无聊地在寝室掷骰子(点数 $1 \sim 6$ ),小杨手里有3个骰子,观察骰子我们可以发现,点数1和4面为红色,其余面为黑色,此时,小杨发问了:
4+
5+
​ 小杨问了 $n$ 个问题,对于每个问题,给出 $A$ 与 $B$ ,小杨想知道是否存在某种投掷结果,使得方向面向上的红色点数之和恰好为 $A$ ,黑色点数之和恰好为 $B$ ,小杨找到了神通广大的你,帮他回答他的所有疑问。
6+
7+
## 输入
8+
9+
​ 第一行一个正整数 $n$ ,其中 $1 \leq n \leq 10 ^ 5$
10+
11+
​ 接下来 $n$ 行,每行两个数 $A, B$ ,保证 $0 \leq A, B \leq 20 $
12+
13+
## 输出
14+
15+
​ 共 $n$ 行,对于每一个小杨的问题,如果红色和黑色点数之和可以满足要求,输出 `Yes` ,否则输出 `No`
16+
17+
## 输入样例
18+
3
19+
2 3
20+
9 8
21+
4 5
22+
23+
## 输出样例
24+
Yes
25+
No
26+
Yes
27+
28+
## Hint
29+
30+
​ 我们可以枚举所有情况,判断结果是否可达。
31+
32+
​ 当然,当大家学习了数组之后,可以有更高效的算法来进行判断。
33+
34+
35+

2023-09-16/2023-09-16_I.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
## 题目描述
2+
3+
古有韩信沙场点兵,今有雷电将军点兵,出征前,将军让所有士兵每 $x\_1$ 人站一排,多出 $y\_1$ 人;每$x\_2$人站一排,多出 $y\_2$ 人;每 $x\_3$ 人站一排,多出 $y\_3$ 人。兼具美貌和智慧的八重神子小姐马上算出了将军点兵的总人数,可将军还没弄清楚,请你编程帮帮将军吧!
4+
5+
## 输入
6+
7+
共 $ 3 $ 行,第 $ i $ 行包含两数个, 分别为 $x\_i$ 和 $y\_i$
8+
9+
## 输出
10+
11+
共 $1$ 行,为符合题目要求的**最少**人数。
12+
13+
## 输入样例
14+
3 2
15+
5 3
16+
7 2
17+
## 输出样例
18+
23
19+
## 数据范围
20+
确保输入的所有数据为 `int` 范围内的**正整数**
21+
22+
最终结果 $reult$ 满足
23+
24+
$$
25+
result \lt 10^8
26+
$$
27+
28+
确保输入除数 $x\_i $ 两两互素。$i \in\\\{1, 2, 3\\\}$
29+
30+
## HINT
31+
如果没有想法,最暴力的方法也是一种选择。
32+
## 典故
33+
34+
韩信点兵源于民间传说:韩信带兵1500人,战损四五百人。战后每3人站一排,多出2人;每5人站一排,多出3人;每7人站一排,多出2人。韩信由此马上算出了部队人数,有1073名士兵。
35+
36+
本质上这个问题是“中国剩余定理”,有兴趣的同学可以课后了解。
37+
38+
*Author:八重绳子*

2023-09-16/2023-09-16_J.md

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
## 题目描述
2+
3+
注意到:
4+
5+
$$
6+
\begin{cases}
7+
c = a + b \\\
8+
d = a - b \\\
9+
\end{cases}
10+
\iff
11+
\begin{cases}
12+
a = \frac{1}{2} \left( c + d \right) \\\
13+
b = \frac{1}{2} \left( c - d \right) \\\
14+
\end{cases}
15+
$$
16+
17+
我们可以设计如下的加密算法:
18+
19+
20+
#include <stdio.h>
21+
int main(void) {
22+
int a, b;
23+
scanf("%d%d", &a, &b);
24+
int c = (a + 1 * b) % 5;
25+
int d = (a + 4 * b) % 5;
26+
printf("%d %d", c, d);
27+
return 0;
28+
}
29+
30+
31+
这个加密算法对应的解密算法如下:
32+
33+
34+
#include <stdio.h>
35+
int main(void) {
36+
int c, d;
37+
scanf("%d%d", &c, &d);
38+
int a = (c + 1 * d) * 3 % 5;
39+
int b = (c + 4 * d) * 3 % 5;
40+
printf("%d %d", a, b);
41+
return 0;
42+
}
43+
44+
45+
类似的,请你设计如下加密算法对应的解密算法:
46+
47+
48+
#include <stdio.h>
49+
int main(void) {
50+
int a, b, c, d;
51+
scanf("%d%d%d%d", &a, &b, &c, &d);
52+
int e = (a + 1 * c) % 5;
53+
int f = (b + 1 * d) % 5;
54+
int g = (a + 4 * c) % 5;
55+
int h = (b + 4 * d) % 5;
56+
int i = (e + 1 * f) % 5;
57+
int j = (e + 4 * f) % 5;
58+
int k = (g + 2 * h) % 5;
59+
int l = (g + 3 * h) % 5;
60+
printf("%d %d %d %d", i, j, k, l);
61+
return 0;
62+
}
63+
64+
65+
## 输入
66+
67+
$4$ 个用空格分隔的小于 $5$ 的自然数 $i, j, k, l$。
68+
69+
## 输出
70+
71+
$4$ 个用空格分隔的小于 $5$ 的自然数 $a, b, c, d$。
72+
73+
## 输入样例
74+
75+
76+
0 1 2 3
77+
78+
79+
## 输出样例
80+
81+
82+
4 4 4 3
83+
84+
85+
86+
## 拓展思考
87+
88+
Alpha 版代码:
89+
90+
// version Alpha
91+
#include <stdio.h>
92+
int main(void) {
93+
float c, d;
94+
scanf("%f%f", &c, &d);
95+
float a = (c + d) / 2.0;
96+
float b = (c - d) / 2.0;
97+
printf("%f %f", a, b);
98+
return 0;
99+
}
100+
101+
Beta 版代码:
102+
103+
// version Beta
104+
#include <stdio.h>
105+
int main(void) {
106+
float c, d;
107+
scanf("%f%f", &c, &d);
108+
float a = (c + d) / 2.0;
109+
float b = c - a;
110+
printf("%f %f", a, b);
111+
return 0;
112+
}
113+
114+
Gamma 版代码:
115+
116+
// version Gamma
117+
#include <stdio.h>
118+
int main(void) {
119+
float c, d;
120+
scanf("%f%f", &c, &d);
121+
float t;
122+
t = (c + d) / 2.0;
123+
printf("%f ", t);
124+
t = (c - d) / 2.0;
125+
printf("%f", t);
126+
return 0;
127+
}
128+
129+
130+
对并行计算感兴趣的同学可以思考:与 Beta 版代码相比,Alpha 版代码有什么优势?(提示:对 `a` 的赋值与对 `b` 的赋值是否有依赖关系)
131+
132+
对函数式编程感兴趣的同学可以思考:与 Gamma 版代码相比,Alpha 版代码有什么优势?(提示:`t` 的语义是否是不变的)
133+
134+
对密码学感兴趣的同学可以思考:本题中的加密算法是否可以被暴力破解?(提示:小于 $5$ 的自然数只有 $5$ 个)
135+
136+
对多项式感兴趣的同学可以思考:本题中的加密算法与 $p \left( x \right) = a + b x + c x^{2} + d x^{3}$ 有什么关系?(提示:观察 $p \left( 1 \right), p \left( 4 \right), p \left( 2 \right), p \left( 3 \right)$ 分别模 $5$ 的值)
137+
138+
对算法感兴趣的同学可以思考:本题中的加密算法与基 2 快速数论变换有什么关系?(提示:$i, j$ 依赖于 $e, f$ 而不依赖于 $g, h$,类似的,$k, l$ 依赖于 $g, h$ 而不依赖于 $e, f$)
139+
140+
对商环感兴趣的同学可以思考:本题中的加密算法与多项式环的哪些商环有关?(提示:$x^{4} - 1 = \left( x^{2} - 1 \right) \left( x^{2} + 1 \right) = \left( x - 1 \right) \left( x + 1 \right) \left( x - \mathrm{i} \right) \left( x + \mathrm{i} \right)$)
141+
142+
对数论变换感兴趣的同学可以思考:本题中的加密算法对应的解密算法为什么一定存在?(提示:整环上的中国剩余定理)

0 commit comments

Comments
 (0)