1 条题解

  • 0
    @ 2025-8-24 21:32:24

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar kunkun127
    LZOIฏ้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้可互关

    搬运于2025-08-24 21:32:24,当前版本为作者最后更新于2025-01-08 13:52:43,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    思路

    此题根据题意模拟即可。

    由于是 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 ksm(LL a, LL b, LL p)
    {
    	LL ans = 1;
    	while (b)
    	{
    		if (b & 1) ans = ans * a % p;
    		a = a * a % p;
    		b >>= 1;
    	}
    	return ans;
    }
    
    int main()
    {
    	int n, m, k, x;
    	cin >> n >> m >> k >> x;
    	cout << (x % n + m % n * ksm(10, k, n) % n) % n << endl;
    	return 0;
    }
    
    • 1

    信息

    ID
    931
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    0
    已通过
    0
    上传者