poj 1953 dp 無連續1的01串個數

2021-06-28 09:54:10 字數 599 閱讀 9264

題意:問長度為n的無連續1出現的01串有多少個?

思路:簡單dp。

思路1:dp[i][0]表示以0結尾長度為i的串的個數;dp[i][1]表示以1結尾長度為i的串的個數。則轉移方程為dp[i][0] = dp[i-1][0]+dp[i-1][1]和dp[i][1] = dp[i-1][0]。最終對於長度為n的串輸出dp[n][0]+dp[n][1]即可。

思路2:注意對於長度為i的序列,其值為在長度為i-1的序列末尾新增0,以及在長度為i-1且第i-1位為0的序列末尾新增1。而後者恰為長度為i-2的序列個數。也即dp[i] = dp[i-1]+dp[i-2],這就是斐波那契數列。

#include #include long long dp[47][2];

int c,t;

void computedp()

}int main()

}

或者:

#include #include long long dp[47];

int c,t,n;

void computedp()

int main()

}

POJ 1953 解題報告

這道題是簡單dp題。用zeros i 表示長度為i的 合法 序列以0開頭的個數,同理ones i 表示長度為i的合法序列以1開頭的數目,而nums i 表示長度為i的合法序列的數目,於是有nums i zeros i ones i 我們可以遞推地求所有的zeros和ones。從i 1 到 i,由於0...

再談POJ 1953 高手給出O n 演算法

題目大意 n為二進位制數列,要求不能出現連1,求數列可能種數?我原來寫了個遞迴演算法,結果tle,複雜度大概是o 2 n 後來,別人寫出了o n 的演算法。綜合比較來看,我的演算法相當於對所有符合條件的數列情形進行了遍歷,每次函式遞迴呼叫返回時都相當於找到了這樣乙個數列,甚至可以寫出此數列。而這是題...

poj3342 poj2342 樹形dp入門

poj3342 最近做樹形dp,渣渣 成喳喳喳辣,真是不開森。還是適合做基礎入門題。題意 比較好理解。就是一棵樹,選m個點,兒子和父親不能同時選。問最多能選多少個 題目中說的是上級,當然我這裡省略就是用父親節點和孩子結點表示啦 其實dp的內容很好想,d i 0 表示第i個點不選的結果,d i 1 表...