2 条题解
-
0
P1965 [NOIP 2013 提高组] 转圈游戏——题解
解题思路
每轮位置增加 ,进行 轮后总位移为 。只关心模 的结果,因此用快速幂求 ,答案是 。
正确性说明
一轮后位置增加 (模 )。根据加法累积, 轮后位置为 。令 并用模乘替换,得到程序公式。
复杂度分析
时间复杂度 ,空间复杂度 。
C++17 参考代码
#include <bits/stdc++.h> using namespace std; long long qpow(long long a,long long b,long long mod){long long r=1%mod;while(b){if(b&1)r=r*a%mod;a=a*a%mod;b>>=1;}return r;} int main(){long long n,m,k,x;cin>>n>>m>>k>>x;cout<<(x+m*qpow(10,k,n))%n<<'\n';return 0;}
- 1
信息
- ID
- 4899
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
粤公网安备44195502000195号