A
题目描述
AndroidNeko 听说在计算复杂度的重要性刻进主题,想希望你以样写写一个程序来计算满足特定形式递归式的算法复杂度。
具体来说,给定正整数 $a, b, k$,所求递归式为:
$$
T(n) = aT\left(\frac{n}{b}\right) + O\left(n^k\right)
$$
根据主定理,有:
$$
T(n) =
\begin{cases}
O\left(n^{\log_b a}\right), & \log_b a > k \\
O\left(n^k \log n\right), & \log_b a = k \\
O\left(n^k\right), & \log_b a < k \\
\end{cases}
$$
输入格式
第一行一个正整数 $t$ $(1 \leq t \leq 2 \times 10^5)$,表示数据组数。
对于每组数据,一行三个正整数 $a, b, k$ $(1 \leq a, k \leq 10^9,\, 2 \leq b \leq 10^9)$,含义同题目描述。
输出格式
对于每组数据,输出一行:
- 若 $T(n)=O(n^{\log_b a})$,输出
n^{\log_ba} - 若 $T(n)=O(n^k \log n)$,输出
n^klog n 若 $T(n)=O(n^k)$,输出 n^k
阅读全文