切換
舊版
前往
大廳
主題

ZeroJudge - e899: 畢業舞會 解題心得

Not In My Back Yard | 2020-03-04 00:07:06 | 巴幣 2 | 人氣 329

題目連結:


題目大意:
輸入有多列,每列給定一正整數 N (N ≦ 10000),代表有 N 位男生以及 N 位女生排成一列要依序進入會場。

當男生進入會場,如果沒有女伴則會留在會場;當女生進入會場,如果沒有男伴與其配對,則會直接離開會場。試問,有多少種隊伍排列的方式,使得會場裡會配對出 N 個配對(即所有人皆有伴)。



範例輸入:
1
2
10


範例輸出:
1
2
6789


解題思維:
可以視作是括號匹配的方法數。例如(())、()()是合法的括號匹配但)(()、)()(等等不是。將「(」當作男生、「)」當作女生,即是本題的樣子。

因此,本題是很經典的排列組合之問題——卡塔蘭數(Catalan Number)。而其解可用動態規劃解出,見維基之說明、證明。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

相關創作

更多創作