A. 分裂 (splash)

    Type: Default File IO: splash 1000ms 256MiB

分裂 (splash)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

小 Y 最近沉迷于游戏”超级代数大师“,在游戏中,他化身掌握数学之力的神秘魔法师,通过代数的武器击败敌人,走上王座!

最近小 Y 来到了新的关卡:分裂峡谷。史莱姆们是这里的统治者。他们有一种令人厌恶的分裂技能——“SPLASH”:某只史莱姆一旦受伤,假设其受伤后剩余生命值为x,它将立即分裂成两个生命值分别为 x2\lfloor \frac{x}{2}\rfloorx2\lceil \frac{x}{2}\rceil 的史莱姆。如果新生成的史莱姆将来继续受伤,其仍然会使用这一技能。生命值为0的史莱姆会立即死亡。

好在小 Y 恰好拥有对抗他们的最佳武器:代数魔法卷轴"SHOCK"!具体来说,每次小 Y 使用SHOCK 魔法卷轴,都会对每个史莱姆都造成 yy 的伤害。如果一个史莱姆的生命值在使用魔法卷轴之前没有超过 yy,它将在使用魔术卷轴后立即死亡。

上图显示的例子为:y=5y=5,有两个史莱姆生命值分别为x1=25x2=8x_1=25,x_2=8,使用一次魔法卷轴后的效果。

小 Y 的魔法卷轴可以使用任意次数,因此这注定是一场单向杀戮。但是反复点击鼠标太累了,所以小 Y 想让你计算一下,给定战场上史莱姆的初始状态,他至少需要使用多少次魔法卷轴来杀死战场上的所有史莱姆?

输入格式

splash.in 文件读入数据。

第一行包含一个整数 TT,表示数据组数。

对于每个测试数据:

  • 第一行包含两个整数 n,yn,y,表示战场上的史莱姆数量,和使用一次魔法卷轴可以对每个史莱姆造成伤害。

  • 第二行包含 nn 个整数 x1,x2,,xnx_1,x_2,\dots,x_n,表示战场上每个史莱姆的初始生命值。

输出格式

输出到 splash.out 文件。

输出 TT 行。

对于每个数据,输出一行一个整数,代表答案。

样例 1

2
2 5
25 8
1 1
100
3
7

对于样例 1 中的,第一个数据,史莱姆生命值的变化为:$\{25,8\} \to \{10,10,2,1\} \to \{3,2,3,2\}\to \emptyset$

数据范围

对于每个测试点, 保证 $1\le T\le 10^5, ~1\le n\le 10^5, ~1\le y,x_i\le 10^{18}$

保证每个测试点所有测试数据中 nn 的总和不超过 10610^6

子任务 分数 附加约束条件
11 1010 y=1018y = 10^{18}
22 1515 xi100x_i\le 100
33 2020 n=1,xi106n=1, x_i\le 10^6
44 2525 n=1n=1
55 3030 无附加限制

NOIP2测

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2024-11-7 18:15
End at
2024-11-7 21:45
Duration
3.5 hour(s)
Host
Partic.
7