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

2021-07-02 19:55:42 字數 654 閱讀 6991

///

這題主要是找規律,組合數學和遞推式。
舉個例子啊,987654321→912345678

我們從最小的單位——乙個數開始考慮它的所有情況,共有兩種:

1.不換位置 (4→4)

2.與其他數的位置對換(7→2,2→7)

我們記共有i個數時的可能性為f(i)

ⅰ.對於一排數來說,如果乙個數不換位置(情況一),那麼整排數的可能性與他無關,即為f(i-1);

ⅱ.如果乙個數與其他數進行置換,那麼他們必須相互對應,剩下的有f(i-2)種情況,而乙個數可以對應剩下的i-1個數,故這種情況個數為(i-1)*f(i-2)

綜合上面兩種情況所有的可能性為f(i) = (f(i-1) + (i-1)*f(i-2)) % mod,打表即可求得結果。

#include

#include

#include

using

namespace

std;

#define mod 1000000007

long

long

int x[1000009];

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百度之星資格賽1002

problem description 列變位法是古典密碼演算法中變位加密的一種方法,具體過程如下 將明文本元分割成個數固定的分組 如5個一組,5即為金鑰 按一組一行的次序整齊排列,最後不足一組不放置任何字元,完成後按列讀取即成密文。比如 原文 123456789 金鑰 4 變換後的矩陣 1234 ...