[HNOI2008]越狱

题目

[HNOI2008]越狱

想法

以后这种题目考虑容斥
正着不做我们考虑全集减补集
补集就是相邻的人都不信仰同一宗教
易得
\(ans\ =\ m ^ n\ - m * (m\ -\ 1) ^ {n\ -\ 1}\)

代码

#include<iostream>
#include<cstdio>
#define ll long long

ll n,m,mod = 100003;

ll qpow(ll a,ll b){
	ll ans = 1;
	while(b){
		if(b & 1) ans = ans * a % mod;
		a = a * a % mod;
		b >>= 1;
	}
	return ans % mod;
}

int main(){
	scanf("%lld%lld",&m,&n);
	std::cout<<(1ll * qpow(m,n) - 1ll * m * qpow(m - 1,n - 1) % mod + mod) % mod;
}
posted @ 2021-01-08 21:04  fhq_treap  阅读(64)  评论(0编辑  收藏  举报