A、裁纸刀
好难。不会。
B、灭鼠先锋
博弈论。
首先、对于棋盘的任一种情况都是必赢或者必输。
基本思路:
如果我存在放置一个棋子,或在同一行的连续两个空位上各放置一个棋子可以赢,我就必赢,否则我必输。然后不断递归即可。
答案:VVVL
C、质因数个数
枚举 2 ∼ n ~2\sim\sqrt n~ 2∼n 即可。
每次枚举,假设当前枚举的数为 i i i。
如果 ( n m o d i ) = 0 ~(n\bmod i)=0 (nmodi)=0,不断 $ n := \frac n c$ 至 ( n m o d i ) ≠ 0 ~(n\bmod i)\ne0 (nmodi)=0,
且打印 i i i。
D、选数异或
先将值和之所在的位置进行映射。设 f ( A i ) = { i ∣ A i = i } ~f(A_i)=\left\{i|A_i=i\right\}~ f(Ai)={i∣Ai=i} 。
然后,根据 a ⊕ b = c ⇒ a ⊕ c = b ~ a\oplus b=c \Rightarrow a\oplus c=b~ a⊕b=c⇒a⊕c=b ,则可知 i i i和 f ( A i ⊕ x ) f(A_i\oplus x) f(Ai⊕x)位置下的元素异或等于 x x x。【需要保证 f ( A i ⊕ x ) f(A_i\oplus x) f(Ai⊕x)大于 i i i而最小,不然会有重复数据,给下一步带来额外的时间开销】
将每个 i i i对应的 f ( A i ⊕ x ) f(A_i\oplus x) f(Ai⊕x)放入数据 B B B。
现在,处理每个询问。
对于每次询问的 l i , r i l_i,r_i li,ri取数组B的 [ l i , r i ] [l_i,r_i] [li,ri]区间内的最小值是否满足 [ l i , r i ] [l_i,r_i] [li,ri]即可。
区间查询最小值可以用线段树或者ST表来维护。
Ps:这题比赛用暴力写的,没有完全做出来。
E、GCD
gcd ( a + k , b + k ) = g c d ( b − a , a + k ) \gcd(a+k,b+k)=gcd(b-a,a+k) gcd(a+k,b+k)=gcd(b−a,a+k)
所以答案为求最小的 k k k,且 ( a + k ) m o d ( b − a ) = 0 ~(a+k)\bmod (b-a)=0 (a+k)mod(b−a)=0
F、爬树的甲壳虫
设 x i x_i xi为甲壳虫爬到高度为 i i i的期望时长。
考虑甲壳虫有掉下和往上爬一下两个可能,写出
x
i
x_i
xi和
x
i
−
1
x_{i-1}
xi−1之间的关系。
x
i
=
P
i
(
x
i
−
1
+
1
+
x
i
)
+
(
1
−
P
i
)
(
x
i
−
1
+
1
)
化
简
得
x
i
=
x
i
−
1
+
1
1
−
P
i
,
且
x
0
=
0
x_i=P_i(x_{i-1}+1+x_i)+(1-P_i)(x_{i-1}+1)\\化简得~x_i=\frac{x_{i-1}+1}{1-P_i},且x_0=0
xi=Pi(xi−1+1+xi)+(1−Pi)(xi−1+1)化简得 xi=1−Pixi−1+1,且x0=0
求逆元不会可以出门左转,学习下费马小定理和快速幂。
Ps:就是这道题才写的这篇题解,就像为了点醋才包了饺子。
G、全排列的价值
找规律。
H、 扫描游戏
模拟题。
Ps:这题没写出来。觉得太浪费时间了。
I、数的拆分
这个是真不会。
Ps:暴力写了一半。
J、重复的数
莫队算法。
Ps:排序写错了,啊啊啊啊啊啊。