1008: [HNOI2008]越狱

n个人,m种信仰;

问你相邻的人信仰不同的情况有多少种?

 

首先第一个人有m种选择,第二个人有m-1种选择,后面所有的人都只有m-1种选择;

所以结果就是m^n-m*(m-1)^(n-1)

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
#define mod 100003
using namespace std;

ll pow_mod(ll n,ll p)
{
    ll ans=1;
    while(p)
    {
        if(p&1) ans=ans*n%mod;
        n=n*n%mod;
        p>>=1;
    }
    return ans;
}

int main()
{
    ll n,m;
    scanf("%lld%lld",&n,&m);
    ll x=pow_mod(n,m);
    ll y=pow_mod(n-1,m-1);
    ll ans=(x+mod-y*n%mod)%mod;
    printf("%lld\n",ans);
    return 0;
}
View Code

 

posted @ 2013-12-02 20:14  Yours1103  阅读(151)  评论(0编辑  收藏  举报