bzoj1008

时间:2023-03-08 20:13:37

题解:

要求有几种方案可以越狱,可以用总方案-不会越狱的方案

那么总方案就是m^n

那么考虑不会越狱的方案

显然第一个人有m中,后面都是m-1中(和前一个不一样)

答案就是m^n-m*(m-1)^(n-1)

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll M=;
ll n,m;
ll ksm(ll x,ll y)
{
if (y==)return ;
ll z=ksm(x,y/);
z*=z;z%=M;
if (y%==)(z*=x)%=M;
return z;
}
int main()
{
scanf("%lld%lld",&m,&n);
printf("%lld",(ksm(m,n)-m*ksm(m-,n-)%M+M)%M);
}