1 条题解

  • 0
    @ 2025-10-12 20:07:22

    算法一

    注意到有一定的概率查询的是隐含的前导 00 ,于是直接输出 00 即可。 数据较水,期望得分 20pts20pts

    算法二

    注意到数位中含 11 的概率较大,于是直接输出 11 即可。 数据较水,期望得分 40pts40pts

    算法三

    直接做正进制转换。 期望得分 60 80pts60~80pts

    算法四

    由于 C++ 计算负数取余会出现余数为负的情况,而这不是我们想要的。一个不难想到的经典处理方法是,将余数减去 除数(进制数),并给商加一。 期望得分 100pts100pts

    CODE

    #include <bits/stdc++.h>
    using namespace std;
    #define LL long long
    const int N=1e6+10;
    int n,k,x;
    int main()
    {
        //freopen("unlock.in","r",stdin);
        //freopen("unlock.out","w",stdout);
        cin>>n>>k>>x;
        while(--x)
        {
            int p=n%k;
            n/=k;
            if(p<0) n++;
        }
        cout<<n%k-(n%k<0?k:0);
        return 0;
    }
    
    
    
    ###### 搬运^_^
    • 1

    信息

    ID
    1392
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    8
    已通过
    3
    上传者