BZOJ1008(快速幂)
程序员文章站
2022-03-24 15:44:56
...
1008: [HNOI2008]越狱
分析:显然我们知道总的情况数是,然后如果不存在相邻的情况为,第一个有m种选择,后面都有m-1种选择。所以存在相邻的相同的情况为
。因为数值比较大,这里需要运用快速幂
#include "bits/stdc++.h"
using namespace std;
typedef long long LL;
const LL mod=100003;
LL n,m;
LL quickmod(LL a,LL b){
LL res=1;
while(b){
if(b&1) res=(res*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return res%mod;
}
int main()
{
scanf("%lld%lld",&m,&n);
printf("%lld\n",(quickmod(m,n)-(m*quickmod(m-1,n-1)%mod)%mod+mod)%mod);
return 0;
}
下一篇: 快速排序初学笔记整理