CodeForces 288B

来源:互联网 发布:阿里云系统好用吗 编辑:程序博客网 时间:2024/04/20 04:41

题意:

给定 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;}



0 0