我们可以求得总的方案数是n^m,第一个位置随意放置有m种方法,后面的每一个因为不能与前面的相同,所以有m-1种方法。
最后的答案是n^m-m*(m-1)^{n-1}注意long long。
#include <bits/stdc++.h>
using namespace std;
const int p = 100003;
typedef long long ll;
ll pow(ll x, ll y){
ll a = x, ans = 1;
while(y){
if(y&1) ans *= a, ans %= p;
a *= a, a %= p;
y >>= 1;
}
return ans;
}
int main(){
ll n, m;
scanf("%lld%lld", &m, &n);
m %= p;
ll ans = pow(m, n);
ans -= pow(m-1,n-1)*m;
ans = ((ans%p)+p)%p;
printf("%lld", ans);
return 0;
}