題目描述
求有多少個1到n的排列滿足恰有k對在排列中相鄰的數滿足前小於後,答案對2012取模。 n,k<=1e3
題解:其實本來是挺水的一道題,然而考場上不知道為什麼怎麼想都是o(n^3)的,即:記f[i][j][k]為前i個數的排列,有j對數滿足條件,最後乙個為k的方案數,轉移顯然。顯然只有最後一維能壓掉,但當時將最後乙個數放的位置侷限於最後乙個,就想不到不借助最後乙個數的大小,怎麼轉移。其實,既然是前i個數的排列了,那麼數i+1可以放在其中的任何乙個位置,如果這個位置本來有滿足條件的數,就不變,如果沒有,就加1,就可以轉移了。(幸好結束前10分鐘打表找出規律,很水地a了,這還是第一次打表找出規律的 )
ZJOI2010 排列計數
不是很懂為什麼洛谷上這題標籤有數字dp,於是我被騙來做這道題。不過上一道題也是一樣,其實也是組合數學。題意其實是求1.n1.n 1.n 的排列中有多少個可以構成小根堆。f i f i f i 表示以i ii為根的樹的方案數,l,r l,rl,r是左,右子樹結點個數,那麼有 f i f l f r c...
ZJOI2010 排列計數
求1 n的全排列 p i 的個數,滿足對於 i geq 2 有 p i p 隨手畫個圖就可以發現問題是求大小為 n 的小根堆的個數 由於左右子樹互不影響,直接dp即可,設 dp 表示以 i 為根的小根堆的個數,有 dp i dp dp c size i 1 size 注意本題模數可能小於 n 所以要...
ZJOI2010 排列計數
注意觀察題目 pi pi 2 發現特別像什麼?二叉堆!於是就變成了 n 個堆元素進行排列,滿足堆性質的排列對 p 的取模。堆性質根據題意為大根堆 設 f i 為當前堆首為 i 的堆的排列方案數。為滿足堆性質 p i 顯然只能取剩下若干數的最大值。發現 f i 影響 f 和 f 兩個結點。以 i 為根...