306692: CF1238B. Kill 'Em All
Memory Limit:256 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Kill 'Em All
题意翻译
一个水平的坐标轴,怪兽都在原点右边(xi>0),若使得(xi<=0)则怪兽死亡。 当在c点发射导弹,则: - y=c:怪兽死亡 - y<c:怪兽向左移动r个单位,坐标变为 y -r - y>c:怪兽向右移动r个单位,坐标为y+r 为了杀死怪兽,至少要发射多少导弹。题目描述
Ivan plays an old action game called Heretic. He's stuck on one of the final levels of this game, so he needs some help with killing the monsters. The main part of the level is a large corridor (so large and narrow that it can be represented as an infinite coordinate line). The corridor is divided into two parts; let's assume that the point $ x = 0 $ is where these parts meet. The right part of the corridor is filled with $ n $ monsters — for each monster, its initial coordinate $ x_i $ is given (and since all monsters are in the right part, every $ x_i $ is positive). The left part of the corridor is filled with crusher traps. If some monster enters the left part of the corridor or the origin (so, its current coordinate becomes less than or equal to $ 0 $ ), it gets instantly killed by a trap. The main weapon Ivan uses to kill the monsters is the Phoenix Rod. It can launch a missile that explodes upon impact, obliterating every monster caught in the explosion and throwing all other monsters away from the epicenter. Formally, suppose that Ivan launches a missile so that it explodes in the point $ c $ . Then every monster is either killed by explosion or pushed away. Let some monster's current coordinate be $ y $ , then: - if $ c = y $ , then the monster is killed; - if $ y < c $ , then the monster is pushed $ r $ units to the left, so its current coordinate becomes $ y - r $ ; - if $ y > c $ , then the monster is pushed $ r $ units to the right, so its current coordinate becomes $ y + r $ . Ivan is going to kill the monsters as follows: choose some integer point $ d $ and launch a missile into that point, then wait until it explodes and all the monsters which are pushed to the left part of the corridor are killed by crusher traps, then, if at least one monster is still alive, choose another integer point (probably the one that was already used) and launch a missile there, and so on. What is the minimum number of missiles Ivan has to launch in order to kill all of the monsters? You may assume that every time Ivan fires the Phoenix Rod, he chooses the impact point optimally. You have to answer $ q $ independent queries.输入输出格式
输入格式
The first line contains one integer $ q $ ( $ 1 \le q \le 10^5 $ ) — the number of queries. The first line of each query contains two integers $ n $ and $ r $ ( $ 1 \le n, r \le 10^5 $ ) — the number of enemies and the distance that the enemies are thrown away from the epicenter of the explosion. The second line of each query contains $ n $ integers $ x_i $ ( $ 1 \le x_i \le 10^5 $ ) — the initial positions of the monsters. It is guaranteed that sum of all $ n $ over all queries does not exceed $ 10^5 $ .
输出格式
For each query print one integer — the minimum number of shots from the Phoenix Rod required to kill all monsters.
输入输出样例
输入样例 #1
2
3 2
1 3 5
4 1
5 2 3 5
输出样例 #1
2
2