2 条题解

  • 0
    @ 2026-1-28 14:26:35

    特别考虑一下m是1的情况,其他的暴力枚举即可,复杂度是log的,想要再高效一点就用log去算要几次,但是我懒得算。 赛时记得能过就行,但是平常练习记得考虑考虑怎么写,以防比赛真要你写

    #include<bits/stdc++.h>
    using namespace std;
    
    void sol(){
        long long n, m; cin >> n >> m;
        if(m == 1 || m >= n)  cout << 1 << endl;
        else{
            long long t = m;
            int res = 1;
            while(t * m < n)
                t *= m, res ++;
            if(n - t > t * m - n)
                res ++;
            cout << res << endl;
        }
    }
    
    int main(){
        int t; cin >> t;
        while(t --)
            sol();
        return 0;
    }
    

    信息

    ID
    159
    时间
    1000ms
    内存
    256MiB
    难度
    4
    标签
    递交数
    125
    已通过
    17
    上传者