problem description
近期b廠組織了一次大搬家,所有人都要按照指示換到指定的座位上。指示的內容是坐在位置i
上的人要搬到位置j
上。現在b廠有n
個人,一對一到n
個位置上。搬家之後也是一一對應的,改變的只有位次。
雖然我們都知道度度熊的「機智」常常令人堪憂,但是不可思議的是,這回真的應驗了。第三次搬家後的結果和第一次的結果完全相同。
那麼,有多少種指示會讓這種事情發生呢?如果兩種指示中至少有乙個人的目標位置不同,就認為這兩種指示是不相同的。
input
第一行乙個整數t
,表示t組資料。
每組資料報含乙個整數n(1≤n≤1000000)
。output
對於每組資料,先輸出一行 case #i: 然後輸出結果,對1000000007
取模。sample input
213
sample output
case #1:大意: 變換兩次回到原位,當前這個狀態可以由兩個狀態轉移過來 1.前面n-1照樣,最後乙個不動 2.最後乙個與前面n-1組合,剩下的n-2排列1case #2:
4
遞迴式 f[n] = f[n-1] + (n-1)*(f[n-2])
#include#include#includeusing namespace std;const int mod = 1000000007;
long long f[1000100];
int main()
return 0;
}
2015百度之星資格賽1001
題目名稱 大搬家 problem description 近期b廠組織了一次大搬家,所有人都要按照指示換到指定的座位上。指示的內容是坐在位置 i 上的人要搬到位置 j 上。現在b廠有 n 個人,一對一到 n 個位置上。搬家之後也是一一對應的,改變的只有位次。在第一次搬家後,度度熊由於疏忽,又要求大家...
2015百度之星資格賽1001
題目名稱 大搬家 problem description 近期b廠組織了一次大搬家,所有人都要按照指示換到指定的座位上。指示的內容是坐在位置 i 上的人要搬到位置 j 上。現在b廠有 n 個人,一對一到 n 個位置上。搬家之後也是一一對應的,改變的只有位次。在第一次搬家後,度度熊由於疏忽,又要求大家...
2015百度之星資格賽1001 大搬家
這題主要是找規律,組合數學和遞推式。舉個例子啊,987654321 912345678 我們從最小的單位 乙個數開始考慮它的所有情況,共有兩種 1.不換位置 4 4 2.與其他數的位置對換 7 2,2 7 我們記共有i個數時的可能性為f i 對於一排數來說,如果乙個數不換位置 情況一 那麼整排數的可...