CF1426C.Increase and Copy

普及-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Initially, you have the array aa consisting of one element 11 (a=[1]a = [1]).

In one move, you can do one of the following things:

  • Increase some (single) element of aa by 11 (choose some ii from 11 to the current length of aa and increase aia_i by one);
  • Append the copy of some (single) element of aa to the end of the array (choose some ii from 11 to the current length of aa and append aia_i to the end of the array).

For example, consider the sequence of five moves:

  1. You take the first element a1a_1, append its copy to the end of the array and get a=[1,1]a = [1, 1].
  2. You take the first element a1a_1, increase it by 11 and get a=[2,1]a = [2, 1].
  3. You take the second element a2a_2, append its copy to the end of the array and get a=[2,1,1]a = [2, 1, 1].
  4. You take the first element a1a_1, append its copy to the end of the array and get a=[2,1,1,2]a = [2, 1, 1, 2].
  5. You take the fourth element a4a_4, increase it by 11 and get a=[2,1,1,3]a = [2, 1, 1, 3].

Your task is to find the minimum number of moves required to obtain the array with the sum at least nn.

You have to answer tt independent test cases.

最初,你拥有一个仅包含一个元素 11 的数组 aa(即 a=[1]a = [1])。

在一次操作中,你可以执行以下两种操作之一:

  • 将 aa 中某个(唯一)元素的值加 11(选择某个下标 ii,其中 1≤i≤1 \le i \le 当前数组 aa 的长度,并将 aia_i 增加 11);
  • 将 aa 中某个(唯一)元素的副本追加到数组末尾(选择某个下标 ii,其中 1≤i≤1 \le i \le 当前数组 aa 的长度,并将 aia_i 追加到数组 aa 的末尾)。

例如,考虑如下五步操作序列:

  1. 取第一个元素 a1a_1,将其副本追加到数组末尾,得到 a=[1,1]a = [1, 1]。
  2. 取第一个元素 a1a_1,将其值加 11,得到 a=[2,1]a = [2, 1]。
  3. 取第二个元素 a2a_2,将其副本追加到数组末尾,得到 a=[2,1,1]a = [2, 1, 1]。
  4. 取第一个元素 a1a_1,将其副本追加到数组末尾,得到 a=[2,1,1,2]a = [2, 1, 1, 2]。
  5. 取第四个元素 a4a_4,将其值加 11,得到 a=[2,1,1,3]a = [2, 1, 1, 3]。

你的任务是求出获得一个元素和至少为 nn 的数组所需的最少操作次数。

你需要回答 tt 个相互独立的测试用例。

输入格式

The first line of the input contains one integer tt (1≤t≤10001 \le t \le 1000) — the number of test cases. Then tt test cases follow.

The only line of the test case contains one integer nn (1≤n≤1091 \le n \le 10^9) — the lower bound on the sum of the array.

输入的第一行包含一个整数 tt(1≤t≤10001 \le t \le 1000),表示测试用例的数量。接下来是 tt 个测试用例。

每个测试用例仅一行,包含一个整数 nn(1≤n≤1091 \le n \le 10^9),表示数组元素和的下界。

输出格式

For each test case, print the answer: the minimum number of moves required to obtain the array with the sum at least nn.

对于每个测试用例,输出答案:得到一个元素和至少为 nn 的数组所需的最少操作次数。

输入输出样例

  • 输入#1

    5
    1
    5
    42
    1337
    1000000000

    输出#1

    0
    3
    11
    72
    63244

输入解题思路,AI测评打分。不知道怎么写?

首页