军训
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 39 测试通过 : 14
比赛描述
新学期的军训开始啦,在汇报演出的时候教官打算从不同的学院中挑选2n个同学组成一个2*n的方阵,面向主席台的方向为正方向,现在有k个学院可以参与演出,假设教官可以从每个学院中挑选出任意多的同学,但是在方阵中相邻的位置不能站同一个学院的学生,请问一共有多少中不同的选择方法(计算结果需要mod10007)。
输入
每行有两个正整数n k (0<n<100,2<k<=10)
输出
一个正整数表示爱好者协会计算的结果
样例输入
1 3
样例输出
6
题目来源
ACM爱好者协会
#include<iostream>
#define MOD 10007
int main(){
int n,k,r;
while(scanf("%d%d",&n,&k)==2){
r = k*(k-1) % MOD;
if(n>1){
int temp = (k*k - 3*k +3) % MOD;
while(--n){
r = ( r*temp) % MOD;
}
}
printf("%d\n",r);
}
}