軍訓
時間限制(普通/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);
}
}