0%

NOIP2013提高组转圈游戏

P1965

推个公式,,不复杂的

Ans=(x+m×10k)mod nAns = (x + m \times 10^k) mod\ n

快速幂解决

(就是我不开 long long 只有70分,而题解里都没开 long long … 是我的实现不够好么

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
#define int long long
using namespace std;

int n, m, k, x;
int ksm(int a, int b)
{
int res = 1;
while (b)
{
if (b & 1)
res = res * a % n;
a = a * a % n;
b >>= 1;
}
return res;
}
signed main()
{
cin >> n >> m >> k >> x;
cout << (x % n + m % n * ksm(10, k) % n) % n;
return 0;
}

欢迎关注我的其它发布渠道