题意:
给定 n 和k,n 表示有n个房子,然后每个有一个编号,一只鹅要从一个房间中开始走,下一站就是房间的编号,现在要你求出有多少
种方法编号并满足下面的要求:
1.如果从1到k开始走,一定能走到 1。
2.如果从k+1到n 开始走,一定走不到 1.
3.如果从 1 开始走,那么一定能回到1,并且走过房间数不为0.
输入:
5 2
7 4
输出:
54
1728
代码:
#include<bits/stdc++.h>
using namespace std;
const int MOD=1000000000+7;
int main()
{
int n,k,a[10];
a[1]=1;
a[2]=2;
a[3]=9;
a[4]=64;
a[5]=625;
a[6]=7776;
a[7]=117649;
a[8]=2097152;
cin >>n>>k;
long long int ans=a[k];
for(int i=0; i<n-k; i++)
{
ans*=(n-k);
ans%=MOD;
}
printf("%I64d\n",ans);
return 0;
}