第 5 场 小白入门赛
A. 十二生肖
思路:
[鼠, 牛, 虎, 兔, 龙, 蛇, 马, 羊, 猴, 鸡, 狗, 猪]
时间复杂度:\(O(1)\)
1 | print(5) |
B. 欢迎参加福建省大学生程序设计竞赛
思路:
- 用
map
存一下,然后输出一下不同数对的个数
时间复杂度:\(O(n)\)
1 | signed main() { |
C. 匹配二元组的数量
思路:
- 直接将式子转化为 \(a_i \times i = a_j \times j\) ,然后统计数对的个数即可
时间复杂度:\(O(n)\)
1 | signed main() { |
D. 元素交换
思路:
- 只可能有两种排列,一种是
010101010101010101....
,还有一种是10101010101010101010....
- 然后我们只需要分别统计两种不一样的数的个数,然后取
min
,即为最小值
时间复杂度:\(O(n)\)
1 | signed main() { |
E. 下棋的贝贝
思路:
时间复杂度:\(O(\sqrt n)\)
1 | signed main() { |
F. 方程
思路:
\(n\) 比较大,需要用矩阵快速幂来解决
这个式子可以递推得到 \(f_n=k \times f_{n-1} - f_{n-2}\) ,然后构造 \(a\) 矩阵,和 \(res\) 矩阵 \[ B=\left[ \begin{array}{} n-1 \\ n-2 \end{array} \right] \space\space\space \times \space\space\space A=\left[ \begin{array}{} k & -1 \\ 1 & 0 \end{array} \right] \space\space\space =\space\space\space C\left[ \begin{array}{} k \times f_{n-1} - f_{n-2} \\ n-1 \end{array} \right] \]
这样矩阵 \(A \times B \Rightarrow C(f_n)\)
时间复杂度:\(O(logn)\)
1 | constexpr int P = 1E9 + 7; |