HNOI2009 有趣的數列 卡特蘭數與楊表

2022-05-01 23:54:13 字數 1059 閱讀 6531

我們稱乙個長度為2n的數列是有趣的,當且僅當該數列滿足以下三個條件:

(1)它是從1到2n共2n個整數的乙個排列;

(2)所有的奇數項滿足a1

3<…2n-1,所有的偶數項滿足a2

4<…2n;

(3)任意相鄰的兩項a2i-1與a2i(1≤i≤n)滿足奇數項小於偶數項,即:a2i-1

2i。現在的任務是:對於給定的n,請求出有多少個不同的長度為2n的有趣的數列。因為最後的答案可能很大,所以只要求輸出答案 mod p的值。

分析:

當然,可以打表找規律。

但是,如果學習了楊表的話,很顯然,這就是乙個 $2 \times n$ 的標準楊表,使用勾子公式,答案為 $\frac = \frac^n}$,這也就是卡特蘭數。

首先,我們來看乙個最簡單的問題:

我在學校門口賣奶茶,奶茶一元一杯。今天下午開門的時候,我發現找零的錢忘帶了。

這時候來了 2n 個人,其中 n 個人身上只有一張一元錢,另外 n 個人身上只有一張兩元錢。我就讓他們排成一隊,然後用這 n 個人的一元錢來找給付兩元的人。當然,排隊的時候得保證每次來乙個付兩元的人的時候都有的找。

假設所有拿一元的人和拿兩元的人都沒有分別,我現在想知道,他們有多少種排隊方式?

易知,答案即第 n 個catalan數。

再看如下的公升級問題,

公升級1: 條件同上,但這時候來的人數為 3n ,其中 n 個人只有一張一元錢,n 個只有一張兩元錢, n 個只有一張三元錢(假設題設的每種面值的鈔票均存在)。我仍然讓他們排成一隊,只要有付兩元的就用一元找,付三元的就用兩元找。同樣得保證每當需要找錢時有對應的錢可以找。求他們有多少種排隊方式?
以及最終問題:

公升級2: 條件同上,但這時候來的人數為 mn,其中擁有面值為一元至 m 元的人均有 n 個。每當支付 k (1 < k <= m-1)元時用 k-1 面值的鈔票去找零。求合法排隊方式數。
答案其實就是 n 行 m 列的楊表的種數,由勾子公式

$$\frac^ (n+k)!/k!}$$

HNOI2009 有趣的數列

求 1 到 2n 的全排列種類數,滿足奇數項和偶數項分別單增,任意 a a 以下為亂搞。考慮從1開始考慮每個數字怎麼填,可以看 猜 出,由於相鄰偶數項比奇數項大,所以奇數項一定要小一些,所以奇數項填的數字個數一定始終大於等於偶數項,這就是個卡特蘭數啦 問題變成求 catlan n p 由於 p 不是...

HNOI 2009 有趣的數列 題解

題目傳送門 題目大意 問有多少個長度為 2n2n 2n的序列滿足以下條件 1 這個序列是 1 11 2n2n 2n的乙個排列 2 這個序列奇數字遞增,偶數字也遞增 3 每個偶數字比在他前面一位的奇數字要大。我們設這個序列為 aaa。發現這樣乙個性質 每個偶數字 2i2i 2i滿足a2i a2 i 2...

1485 HNOI2009 有趣的數列

題目鏈結 題目大意 稱乙個長度為2n 的數列是有趣的,當且僅當該數列滿足以下三個條件 它是乙個1 2n的排列a1 n 1,a2 n a2 i 1i 題解 丟題解跑qaq 我的收穫 2333 include using namespace std define maxn 3000005 int n,p...