CF1426C Increase and Copy
题目描述
最开始,你有一个只包含一个元素 $1$ 的数组 $a$($a = [1]$)。
每一步操作,你可以进行以下两种操作之一:
- 将数组 $a$ 中的某一个元素增加 $1$(选择当前数组中第 $i$ 个元素,将 $a_i$ 增加 $1$);
- 将数组 $a$ 中的某一个元素复制一份,添加到数组末尾(选择当前数组中第 $i$ 个元素,将 $a_i$ 的一个副本添加到数组末尾)。
例如,考虑以下五步操作的序列:
1. 取第一个元素 $a_1$,将其复制一份添加到数组末尾,得到 $a = [1, 1]$。
2. 取第一个元素 $a_1$,将其增加 $1$,得到 $a = [2, 1]$。
3. 取第二个元素 $a_2$,将其复制一份添加到数组末尾,得到 $a = [2, 1, 1]$。
4. 取第一个元素 $a_1$,将其复制一份添加到数组末尾,得到 $a = [2, 1, 1, 2]$。
5. 取第四个元素 $a_4$,将其增加 $1$,得到 $a = [2, 1, 1, 3]$。
你的任务是,求出最少需要多少步操作,才能使数组的元素和至少为 $n$。
你需要回答 $t$ 组独立的测试用例。
输入格式
输入的第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。接下来有 $t$ 行,每行一个整数 $n$($1 \le n \le 10^9$),表示数组元素和的下界。
输出格式
对于每个测试用例,输出一个答案:使数组元素和至少为 $n$ 所需的最小操作次数。
说明/提示
由 ChatGPT 4.1 翻译