越狱的方案数难算,不越狱的方案数好算。直接将总方案数减去不越狱方案数即可。
·总方案数:m^n
·不越狱方案数:m*(m-1)^(n-1) (除了第一个监狱,其它的监狱都只能取与前一个监狱不同的宗教,即m-1种)
快速幂+取模。
#include<cstdio>
#define MOD 100003
long long fpow(long long base, long long p)
{
long long r=1;
while(p)
{
if(p&1)
r*=base;
r%=MOD;
base*=base;
base%=MOD;
p>>=1;
}
return r;
}
int main()
{
long long m, n;
scanf("%lld%lld",&m,&n);
long long f1=fpow(m,n);
long long f2=fpow(m-1,n-1);
f2*=m;
f2%=MOD;
printf("%lld",(f1-f2+MOD)%MOD);
return 0;
}