天天看点

南邮 OJ 1911 军训

军训

时间限制(普通/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);
	}
}