题解:P1965 [NOIP2013 提高组] 转圈游戏
AFO_kunkun127 · · 题解
思路
此题根据题意模拟即可。
由于是
显然,每个人移动过
注意事项
- 计算
10^k 时数据较大,要用快速幂。 - 编号从
0 开始。
参考代码
#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;
}