這個題等價於求將長度為2k的序列a = 劃分為兩個長度為k的遞增子串行b = 和 c = ,對任意i屬於1到k滿足bi < ci 的劃分方式總數。
乙個滿足條件的劃分等價於:
有兩個棧,乙個叫a,乙個叫b,元素從小到大依次入棧,但是必須滿足b棧的長度在任意時刻不小於a棧的長度。比如,如果有六個數1到6,則下圖是一種入棧方式:
很明顯,這是乙個catalan數了。
view code
1 #include 2const
int max = 41;3
long
long
num[max][max];45
void
init()
13else16}
17}18}
1920
intmain()
2127
return0;
28}2930
LETTers練習賽第十場 第一題
題目意思 給你很多個點,這些點滿足 a set of points xi,yi that satisfy xi xj and yi yj for all i j.讓你用一棵樹把所有點連在一齊,樹只能往上跟右生長,求樹的總長度最小 解題思路 類似石子合併,加上四邊形優化就行了 定義狀態 dp i,j ...
第八屆藍橋杯第一題
小明剛剛找到工作,老闆人很好,只是老闆夫人很愛購物。老闆忙的時候經常讓小明幫忙到商場代為購物。小明很厭煩,但又不好推辭。這不,xx大 又來了!老闆夫人開出了長長的購物單,都是有打折優惠的。小明也有個怪癖,不到萬不得已,從不刷卡,直接現金搞定。現在小明很心煩,請你幫他計算一下,需要從取款機上取多少現金...
牛客多校第八場I題 並查集
interesting computer game 題意 給你n對數,然後每對數只能挑乙個數,並且如果這個數在前面被挑過了,那麼就不能被挑選,問最多能挑多少個數 思路 我一開始想到的是拓撲排序,畢竟之前正好刷過這樣類似的幾道題,然並軟,我就是沒有做出來。也有拓撲排序的解法,然而我並沒有想出來。待補 ...