BZOJ 1008: [HNOI2008]越狱 题解

来源:互联网 发布:暗黑3双开软件 编辑:程序博客网 时间:2024/06/06 04:56

(传送门)
求出可能的越狱状态,可以先求出所有安排状态以及不会越狱的状态。然后 -,然后后……everything is OK.
所有的安排方案,一共n个人,每个人m种选择,所以是m^n;
不会越狱,第一个人m种,第二个人不能和前一个人相同,只有m-1种,后面也一样……这样思考就可以将不与后面重复转换成后一个人不与前面的重复,答案就是m*((m-1)^(n-1));
用快速幂,然后-。

……

The end.

#include<cstdio>#define LL long longusing 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
注意是一个人哦

原创粉丝点击