题解:贪心策略:要使构造数组中数字元素的最大值最小,那么我们就应该尽可能的将元素变为 k/n的形式。如果k/n!=0时候,这时候的max=k/n+1。如果k<n,则需要将k变为大于n的最小数、k*(n/k+1),最后输出答案即可
例如:
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll t,n,k;
int main(){
cin>>t;
while(t--){
cin>>n>>k;
if(n>k){
if(n%k==0) k=n;
else{//倍增
ll a=n/k;
k*=a+1;
}
}
if(k%n==0) cout<<k/n<<"\n";
else cout<<k/n+1<<"\n";
}
}