其他分享
首页 > 其他分享> > [HNOI2008]越狱 题解

[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;
}

 

 

 

 

标签:方案,题解,房间,越狱,long,ans1,KSM,res,HNOI2008
来源: https://www.cnblogs.com/kamimxr/p/11823170.html