CF1735B求助
  • 板块学术版
  • 楼主qaq12345
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/10/7 13:35
  • 上次更新2023/10/27 08:20:11
查看原帖
CF1735B求助
773014
qaq12345楼主2022/10/7 13:35

B. 橘子茶 每次测试的时间限制 1秒 每次测试的内存限制 256 兆字节 输入 标准输入 输出 标准输出 有n块陈皮,其中i-th 的大小为a_i。在一个步骤中,可以将一块大小x分成两块正整数大小y和z,使得y + z = x。

您希望每对零件的尺寸差异严格小于两倍。换句话说,不应该有两块大小为x和y,如2x<=y。满足条件所需的最少步数是多少?

输入 输入的第一行包含一个整数t(1<=t<=100) — 测试用例的数量。测试用例的描述如下。

每个测试用例的第一行包含整数n(1<=n<=100)。

然后一行,包含n整数a_1<=a_2<=...<=a_n(1<=a_i<=10^7)。

输出 对于每个测试用例,输出包含最少步数的单行。

输入:

  • 3
  • 5
  • 1 2 3 4 5
  • 1
  • 1033
  • 5
  • 600 900 1300 2000 2550
  • 输出
  • 10
  • 0
  • 4

笔记 在第一个测试用例中,我们最初有一块尺寸为 1,因此所有最终的碎片必须尺寸为1。总步数为0 + 1 + 2 + 3 + 4 = 10。 在第二个测试用例中,我们只有一块,所以我们不需要做任何事情,答案是0步骤。

在第三个测试用例中,可能的切割选项之一​​是:600,\900,(600 | 700),(1000 | 1000),(1000 | 1000 | 550)。您可以在下图中看到此选项。最大一块尺寸为1000,它比最小尺寸550 大不到2倍。4 步骤已完成。我们可以证明这是可能的最小步数。

2022/10/7 13:35
加载中...