HDU 百度之星(測試賽)1001 大搬家

2021-07-11 17:40:32 字數 1093 閱讀 5008

problem description

近期b廠組織了一次大搬家,所有人都要按照指示換到指定的座位上。指示的內容是坐在位置ii

i上的人要搬到位置jj

j上。現在b廠有nn

n個人,一對一到nn

n個位置上。搬家之後也是一一對應的,改變的只有位次。

雖然我們都知道度度熊的「機智」常常令人堪憂,但是不可思議的是,這回真的應驗了。第三次搬家後的結果和第一次的結果完全相同。

那麼,有多少種指示會讓這種事情發生呢?如果兩種指示中至少有乙個人的目標位置不同,就認為這兩種指示是不相同的。

input

第一行乙個整數tt

t,表示t組資料。

每組資料報含乙個整數n(1 \leq n \leq 1 000 000)n(

1≤n≤

1000

000)

。 output

對於每組資料,先輸出一行case #i:然後輸出結果,對100

0000

007取模。

sample input

2

13

sample output

case #1:

1case #2:

4

一上來看題有點暈乎,不知所云。

仔細一想【查了查題解】就是乙個換位置的問題,問有多少種情況能換三次後讓原來的位次不變。

1(1和1換)

2(1和2換,2和1換)(1和1換,2和2換)

3(1和1換,2和2換,3和3換)(1和2換,2和1換,3和3換)(1和3換,3和1換,2和2換)(2和3換,3和2換,1和1換)

這麼數下去,n就可以分成兩種:一、和自己換;二、和前面n-1個人中1個的換。

所以遞推公式就是:a[n] = a[n-1] + a[n-2]*(n-1);

ps.一開始i64d寫成i64d,wa了兩次t^t

#include const int mod = 1000000007;

long long a[1000000 + 5];

int main()

return 0;

}

2015百度之星資格賽1001 大搬家

這題主要是找規律,組合數學和遞推式。舉個例子啊,987654321 912345678 我們從最小的單位 乙個數開始考慮它的所有情況,共有兩種 1.不換位置 4 4 2.與其他數的位置對換 7 2,2 7 我們記共有i個數時的可能性為f i 對於一排數來說,如果乙個數不換位置 情況一 那麼整排數的可...

2014百度之星1001

problem description 魔法師百小度也有遇到難題的時候 現在,百小度正在乙個古老的石門面前,石門上有一段古老的魔法文字,讀懂這種魔法文字需要耗費大量的能量和大量的腦力。過了許久,百小度終於讀懂魔法文字的含義 石門裡面有乙個石盤,魔法師需要通過魔法將這個石盤旋轉x度,以使上面的刻紋與天...

2015百度之星資格賽1001

題目名稱 大搬家 problem description 近期b廠組織了一次大搬家,所有人都要按照指示換到指定的座位上。指示的內容是坐在位置 i 上的人要搬到位置 j 上。現在b廠有 n 個人,一對一到 n 個位置上。搬家之後也是一一對應的,改變的只有位次。在第一次搬家後,度度熊由於疏忽,又要求大家...