CF1550A.Find The Array

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Find The Array

题目描述

我们称一个由 nn 个正整数(大于 00)组成的数组 aa 是“美丽的”,如果对于每一个 ii1in1 \leq i \leq n),都满足以下条件之一:要么 ai=1a_i = 1,要么数组中存在 ai1a_i - 1ai2a_i - 2 这两个数中的至少一个。

例如:

  • 数组 [5,3,1][5, 3, 1] 是美丽的:对于 a1a_1,有 a12=3a_1 - 2 = 3 存在于数组中;对于 a2a_2,有 a22=1a_2 - 2 = 1 存在于数组中;对于 a3a_3,满足 a3=1a_3 = 1
  • 数组 [1,2,2,2,2][1, 2, 2, 2, 2] 是美丽的:对于 a1a_1,满足 a1=1a_1 = 1;对于其他每个 aia_i,有 ai1=1a_i - 1 = 1 存在于数组中;
  • 数组 [1,4][1, 4] 不是美丽的:对于 a2a_2,既没有 a22=2a_2 - 2 = 2 也没有 a21=3a_2 - 1 = 3 存在于数组中,且 a21a_2 \neq 1
  • 数组 [2][2] 不是美丽的:对于 a1a_1,既没有 a11=1a_1 - 1 = 1 也没有 a12=0a_1 - 2 = 0 存在于数组中,且 a11a_1 \neq 1
  • 数组 [2,1,3][2, 1, 3] 是美丽的:对于 a1a_1,有 a11=1a_1 - 1 = 1 存在于数组中;对于 a2a_2,满足 a2=1a_2 = 1;对于 a3a_3,有 a32=1a_3 - 2 = 1 存在于数组中。

给定一个正整数 ss。请你求出元素和为 ss 的美丽数组的最小可能大小。

输入格式

第一行包含一个整数 tt1t50001 \leq t \leq 5000),表示测试用例的数量。

接下来 tt 行,每行包含一个整数 ss1s50001 \leq s \leq 5000),表示第 ii 个测试用例的目标和。

输出格式

输出 tt 个整数,第 ii 个整数表示第 ii 个测试用例的答案:元素和为 ss 的美丽数组的最小可能大小。

说明/提示

考虑示例测试:

  1. 在第一个测试用例中,数组 [1][1] 满足所有条件;
  2. 在第二个测试用例中,数组 [3,4,1][3, 4, 1] 满足所有条件;
  3. 在第三个测试用例中,数组 [1,2,4][1, 2, 4] 满足所有条件;
  4. 在第四个测试用例中,数组 [1,4,6,8,10,2,11][1, 4, 6, 8, 10, 2, 11] 满足所有条件。

由 ChatGPT 4.1 翻译

样例

4
1
8
7
42
1
3
3
7

在线编程 IDE

建议全屏模式获得最佳体验