1 条题解

  • 0
    @ 2026-9-2 11:09:05

    思路

    此题根据题意模拟即可。

    由于是 nn 个人在转圈,每个人每次前进 mm 个单位,走 10k10^k 次。

    显然,每个人移动过 nn 个单位后回到起点,相当于没运动,因此我们可以直接计算初始位置 xx 加上 10km10^k m,再对一圈的长度 nn 取模即可求出答案。

    注意事项

    • 计算 10k10^k 时数据较大,要用快速幂
    • 编号从 00 开始。

    参考代码

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    LL qpow(LL a,LL b,LL P)
    {
        LL ans=1%P;a%=P;
        for(;b;b>>=1)
        {
            if(b&1)ans=ans*a%P;
            a=a*a%P;
        }
        return ans;
    }
    int main()
    {
        LL n,m,k,x;cin>>n>>m>>k>>x;
        cout<<(x+m*qpow(10,k,n))%n<<endl;
        return 0;
    }
    
    
    • 1

    信息

    ID
    1760
    时间
    1000ms
    内存
    128MiB
    难度
    4
    标签
    递交数
    85
    已通过
    41
    上传者