[HNOI2008]越狱 题解
我们知道:相邻房间的犯人的宗教相同的方案数=总方案数-相邻房间的犯人的宗教不相同的方案数;
那么所有方案数是m^n;
我们假设第一个房间有m中取值方案,而对于每个房间(非第一个)都有m-1个取值方案,所以总方案是(m-1)^(n-1)*m;
那么答案就显而易见了;
#include <bits/stdc++.h>
#define p 100003
using namespace std;
long long KSM(long long a,long long b)
{
long long res=1;
while(b){
if(b&1) res=res*a%p;
a=a*a%p;
b/=2;
}
return res%p;
}
int main()
{
long long n,m;
cin>>m>>n;
long long ans1=m*KSM(m-1,n-1)%p;
long long ans2=KSM(m,n)%p;
long long ans=((ans2-ans1)%p+p)%p;
cout<<ans;
}
众人皆醉我独醒,举世皆浊我独清

浙公网安备 33010602011771号