天天看點

南郵 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);
	}
}