A. To Zero【800 / 思维】

58 阅读1分钟

image.png 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;
}