翻译
查看原帖
翻译
287947
Icyfires18楼主2021/8/9 08:25

题目描述

伊万玩了一个叫做异端的古老动作游戏。他被困在这个游戏的最后关卡之一,所以他需要一些帮助来杀死怪物。

标高的主要部分是一条大走廊(如此之大且狭窄,可以表示为一条无限坐标线)。走廊分为两部分;让我们假设x=0点是这些零件相交的地方。

走廊的右边是n个怪物——每个怪物的初始坐标x_i都是给定的(因为所有怪物都在右边,所以每个x_i都是正值)。

走廊的左侧充满了破碎机陷阱。如果某个怪物进入走廊的左侧或原点(因此,其当前坐标小于或等于0),它会立即被陷阱杀死。

伊凡用来杀死怪物的主要武器是凤凰棒。它可以发射一枚导弹,在撞击时爆炸,消灭所有在爆炸中捕获的怪物,并将所有其他怪物从震中抛离。形式上,假设伊万发射一枚导弹,使其在c点爆炸。然后每个怪物要么被爆炸杀死,要么被推开。让某个怪物的当前坐标为y,然后:

如果y=c,则怪物被杀死;

如果y<c,则怪物被推到左侧r个单位,因此其当前坐标变为y-r;

如果y>c,则怪物被推到右侧r个单位,因此其当前坐标变为y+r。

伊凡将按如下方式杀死怪物:选择一个整数点d并向该点发射一枚导弹,然后等待它爆炸,所有推到走廊左侧的怪物都被破碎机陷阱杀死,然后,如果至少有一个怪物还活着,选择另一个整数点(可能是已经使用的整数点)并在那里发射导弹,以此类推。

为了杀死所有的怪物,伊凡必须发射的最少导弹数量是多少?你可以假设,每次伊万发射凤凰棒时,他都会选择最佳的撞击点。

你必须回答q个独立的问题。

输入格式

第一行包含一个整数q(1≤Q≤10^5)-查询的数量。

每个查询的第一行包含两个整数n和r(1≤n,r≤10^5)-敌人的数量以及敌人被扔离爆炸中心的距离。

每个查询的第二行包含n整数x_i(1≤x_i≤10^5)-怪物的初始位置。

保证所有查询中所有n的总和不超过10^5。

输出格式

对于每个查询,打印一个整数-杀死所有怪物所需的凤凰棒最小射击次数。

Translate By_百度翻译

2021/8/9 08:25
加载中...