您的位置:首页 > 其它

BZOJ 1008 [HNOI2008]越狱

2016-08-01 13:09 218 查看
越狱的方案数难算,不越狱的方案数好算。直接将总方案数减去不越狱方案数即可。

·总方案数: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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: