#P1958. 2024.8.29-ali-第2题-找整数

2024.8.29-ali-第2题-找整数

题目内容

给定tt组询问,每次询问给出两个正整数nnkk

在每组询问中,你要找到尽可能少的不同的正整数,满足以下条件:

  • 每个正整数在构成同一个数字时,都能用00~kk次。

  • 对于区间[1,n1,n]里面的每一个数字,都能通过数字之间的组合而“构造”出来、

    这里的“构造”特指求和。更正式地,你需要找到mm个数字a1,a2,....,ama_1,a_2,....,a_m,使得每个x[1,n]x∈[1,n],都能找到至少一组x=a1×y1+a2×y2+...+am×ymx=a_1×y_1+a_2×y_2+...+a_m×y_m0yik0≤y_i≤k)。

    由于数字组合不唯一,请输出最少的数字个数mm

输入描述

​ 每个测试文件均包含多组测试数据。第一行输入一个整数TT(1T1051≤T≤10^5)代表数据组数,每组测试数据描述如下:

​ 在一行上输入两个整数nn(1n1091≤n≤10^9)和kk(1K1091≤K≤10^9),其含义已在题目中说明。

输出描述

对于每一组测试数据,在一行上输出一个整数,代表最少的满足条件的数字个数。

样例1

输入

3
1 1
3 2
5 2

输出

1 
2
2

说明

对于第一组测试数据,我们最少需要11个数字,数字是11。此时有1=11=1

对于第二组测试数据,我们最少需要22个数字,数字是1122

此时有{1=13=1+13=2+1\begin{cases}1=1\\3=1+1\\3=2+1\end{cases}

对于第三组测试数据,我们最少需要22个数字,数字是1122

此时有

$\begin{cases}1=1\\2=1+1\\3=2+1\\4=2+2\\5=2+2+1\end{cases}$