【HNOI2008】越狱

正难则反,在全部的可能中减去不可能发生越狱的情况

#include
#define ll unsigned long long
#define mo 100003
using namespace std;

ll qsm(ll a,ll b){
	ll ans=1;
	for(;b;b>>=1,a=a*a%mo){
		if(b&1)ans=ans*a%mo;
	}
	return ans;
}

int main(){
	ll m,n;
	cin>>m>>n;
	cout<<(qsm(m,n)-m*qsm(m-1,n-1)%mo+mo)%mo;
	return 0;
}

你可能感兴趣的:(组合计数,容斥原理)