codeforces.com/problemset/…
6.45分钟解决,比较好像的就是,奇数减奇数便偶数了,故只能减一次就得换。
而偶数减偶数还是偶数可以快速的批次的减,模拟即可。
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
LL t,n,k;
int main(void)
{
cin>>t;
while(t--)
{
cin>>n>>k;
LL ans=0;
while(n)
{
if(n&1)
{
if(n>=k) {
ans++;
n=n-k;
}else ans++,n=0;
}else
{
if(n>=(k-1)){
ans+=n/(k-1);
n=n-n/(k-1)*(k-1);
}else ans++,n=0;
}
}
cout<<ans<<'\n';
}
return 0;
}