洛谷 P1965 转圈游戏
题目
思路
数论。题目就是让你判断一下第\(x\)个人走了\(m \times 10^k\)步之后到了哪里。总共走的步数为\(m \times 10^k\)直接走肯定会TLE
,对\(n\)取模之后再走就好了。
\(Code\)
复制代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
using namespace std;
int n,m,k,x;
int qpow(int a,int b,int mod){
int ans=1,base=a;
while(b){
if(b&1) ans=ans*base%mod;
base=base*base%mod;
b>>=1;
}
return ans;
}
inline void read(int &T){
int x=0;bool f=0;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=!f;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
T=f?-x:x;
}
signed main(){
read(n),read(m);
read(k),read(x);
m%=n;
int qwq=qpow(10,k,n);
int ans=m*qwq%n;
while(ans--){
x++;
if(x==n) x=0;
}
cout<<x<<endl;
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步