1 #include<cstdio>
 2 #include<iostream>
 3 using namespace std;
 4 long long n,m,ans=1,ans1=1,n1;
 5 int main()
 6 {
 7    scanf("%lld%lld",&m,&n);
 8    n--;
 9    long long n1=n,k=m-1,m1=m;
10    for(;n1;)
11      {
12          if(n1%2)
13            ans=(ans*k)%100003;
14          k=(k*k)%100003;
15          n1>>=1;
16          }    
17     n1=n;
18     for(;n1;)
19      {
20          if(n1%2)
21            ans1=(ans1*m)%100003;
22          m=(m*m)%100003;
23          n1>>=1;
24          }
25    printf("%d",((ans1-ans+100003)*m1)%100003);
26    return 0;
27 }

显而易见的水题,用总方案数减去相邻不同的方案数

posted on 2016-02-27 22:37  xiyuedong  阅读(135)  评论(0编辑  收藏  举报