哎,noipD1T1。
记得开int64,用快速幂。
这道题的数学结论就不推理了,相信大家都能通过找规律找出来。
#include <cstdio>
int n,m,k,x,ans;
long long int t,tmp;
int main()
{
scanf("%d%d%d%d",&n,&m,&k,&x);
t=1;
tmp=10;
int turn;
if(n%m==0)
{
turn=n/m;
}
else
turn=n;
while(k>0)
{
if(k%2!=0)
{
t*=tmp;
if(t>turn)
t%=turn;
}
tmp=tmp*tmp;
tmp%=turn;
k/=2;
}
ans=x;
if(t<turn)
{
for(int i=1;i<=t;i++)
{
ans=(ans+m)%turn;
}
}
else
{
t=t%turn;
for(int i=1;i<=t;i++)
{
ans=(ans+m)%turn;
}
}
printf("%d\n",ans);
return 0;
}