#XMOJ10872. k的倍数
k的倍数
说明
时间限制:1 Sec
内存限制:256 MB
输入文件:k.in 输出文件:k.out
小明得到一个由 $n$ 个整数组成的数组 $a_1$、$a_2$、……、$a_n$ 和一个整数 $k$。
然后,小明得到一个整数 $x=0$,并开始操作。在每一步操作中,他可以执行以下两种动作之一:
- 从 $1$ 到 $n$ 中选择一个 $i$,并将 $a_i$ 增加 $x$,然后将 $x$ 增加 $1$;
- 直接将 $x$ 增加 $1$。
其中,第 $1$ 种操作对从 $1$ 到 $n$ 的每个 $i$ 最多只能用一次。
小明的任务是将数组中的每个数都变成 $k$ 的整数倍,请问他最少要执行多少步操作?
输入格式
第一行为一个整数 $t$,表示有 $t$ 组询问;
接下来为 $t$ 组询问,每组询问由两行组成:
第一行为空格分隔的两个整数 $n$、$k$;
第二行为空格分隔的 $n$ 个整数 $a_1$、$a_2$、……、$a_n$。
输出格式
输出为 $t$ 行,第 $i$ 行为对第 $i$ 组询问的回答,为一个整数,表示第 $i$ 组询问中小明至少要执行多少步操作才能把每个数字都变成 $k$ 的倍数。
样例
样例 1
5
4 3
1 2 1 3
10 6
8 7 1 8 3 7 5 10 8 9
5 10
20 100 50 20 100500
10 25
24 24 24 24 24 24 24 24 24 24
8 8
1 2 3 4 5 6 7 8
6
18
0
227
8
样例说明:
以第 询问为例:
| 步数 | 执行操作 | 数组 | |
| 增加 | 不变 | 变为 | |
| 加上 , 增加 | 变为 | 变为 | |
| 加上 , 增加 | 变为 | 变为 | |
| 加上 , 增加 | 变为 | 变为 | |
| 增加 | 不变 | 变为 | |
| 加上 , 增加 | 变为 | 变为 |
数据范围
$1 \le t \le 10^4$
$1 \le n \le 2 \times 10^5$
$1 \le k \le 10^7$
$1 \le a_i \le 10^9$
题目保证所有询问中的 $n$ 之和不超过 $2 \times 10^5$
相关
在下列比赛中: