简要题解:
A. Omkar and Completion
题意要求你构造一个数列,满足
A
x
+
A
y
!
=
A
z
(
1
<
=
x
,
y
,
z
<
=
n
,
x
,
y
,
z
可
以
相
等
)
Ax+Ay!=Az(1<=x,y,z<=n,x,y,z可以相等)
Ax+Ay!=Az(1<=x,y,z<=n,x,y,z可以相等)
由于题目说每个数不超过1000,而且
n
<
=
1000
n<=1000
n<=1000。
有一种特殊情况假如每一项都是odd奇数。
A x + A y ! = A z Ax+Ay!=Az Ax+Ay!=Az
那么奇数加奇数肯定是偶数。即Az肯定为偶数
那么只用取
1
−
n
1-n
1−n 里的奇数,并且每个double输出即可。(取三个相同的奇数会重复)
B. Omkar and Last Class of Math
思维题:
分三种情况。
1. i f if if 当是偶数时,最优即为
a
=
n
/
2
a=n/2
a=n/2
b
=
n
/
2
b=n/2
b=n/2
2. e l s e i f else if elseif 奇数时(非质数)先找到最小因子 f 1 f1 f1。
那么最大因子就是
f
2
=
n
/
f
1
f2=n/f1
f2=n/f1
有了最大因子就可以输出答案了,
a
=
f
2
a=f2
a=f2
b
=
(
f
1
−
1
)
∗
f
2
b=(f1-1)*f2
b=(f1−1)∗f2
3. 最后是质数的情况。(else即可)
a
=
1
a=1
a=1
b
=
n
−
1
b=n-1
b=n−1
反思:
写的时候第二种情况的for反了,qwq
C. Omkar and Baseball
简单推理。
对于一个
[
1
,
N
]
[1,N]
[1,N]位置上的identity permutation(恒等排列)。
- 假如有些元素在原本的位置上,而有些不在。那么肯定要操作 2 次。
- 假如所有元素都在原位,那么操作 0 次。
- 假如所有元素都不在原位,那么操作 1 次即可。