(传送门)
求出可能的越狱状态,可以先求出所有安排状态以及不会越狱的状态。然后 -,然后后……everything is OK.
所有的安排方案,一共n个人,每个人m种选择,所以是m^n;
不会越狱,第一个人m种,第二个人不能和前一个人相同,只有m-1种,后面也一样……这样思考就可以将不与后面重复转换成后一个人不与前面的重复,答案就是m*((m-1)^(n-1));
用快速幂,然后-。
……
The end.
#include<cstdio>
#define LL long long
using namespace std;
const LL tt=100003;
LL n,m,x,y,ans;
LL ksm(LL a,LL b)
{
a%=tt; LL w=a,tem=1;
while (b)
{
if (b&1) tem=tem*w%tt;
w=w*w%tt;
b>>=1;
}
return tem%tt;
}
int main()
{
scanf("%lld%lld",&n,&m);
x=ksm(n,m);
y=ksm(n-1,m-1);
y=y*(n%tt)%tt;
ans=(x-y+tt)%tt;
printf("%lld",ans);
return 0;
}
这篇博客好像只是来水数量的……
Orz zzk
Orz zzkksunboy
Orz Matchperson
注意是一个人哦