hiho一下 第158周 非法二進位制數 (dp)

2021-08-03 19:48:41 字數 1069 閱讀 1427

如果乙個二進位制數包含連續的兩個1,我們就稱這個二進位制數是非法的。

小hi想知道在所有 n 位二進位制數(一共有2n個)中,非法二進位制數有多少個。

例如對於 n = 3,有 011, 110, 111 三個非法二進位制數。

由於結果可能很大,你只需要輸出模109+7的餘數。

乙個整數 n (1 ≤ n ≤ 100)。

n 位非法二進位制數的數目模10^9+7的餘數。

3
3
dp[i][x]代表長度為i,末尾為x的合法二進位制數的個數,於是非法二進位制數個數便是 2n

−dp[

n][0

]−dp

[n][

1]

對於每乙個合法二進位制數來說,它的末尾有兩種情況:01

末尾為0時可以由前乙個狀態末尾任意轉移而來。

末尾為1時只能由前乙個狀態末尾為0轉移。

於是便有:d

p[i]

[0]=

dp[i

−1][

0]+d

p[i−

1][1

] d

p[i]

[1]=

dp[i

−1][

0]

#include 

using

namespace

std;

typedef

long

long ll;

const

int mod = 1e9+7;

ll dp[105][2];

void init()

}int main()

hiho一下第143周

題目1 hiho密碼 時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述 小ho根據最近在密碼學課上學習到的知識,開發出了一款hiho密碼,這款密碼的秘鑰是這樣生成的 對於一種有n個字母的語言,選擇乙個長度為m的單詞 將組成這個單詞的所有字母按照順序不重複的寫出 即遇到相...

hiho一下 第二週

題目名稱 trie樹 小hi和小ho是一對好朋友,出生在資訊化社會的他們對程式設計產生了莫大的興趣,他們約定好互相幫助,在程式設計的學習道路上一同前進。這一天,他們遇到了一本詞典,於是小hi就向小ho提出了那個經典的問題 小ho,你能不能對於每乙個我給出的字串,都在這個詞典裡面找到以這個字串開頭的所...

hiho一下 第197周 逆序單詞

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 在英文中有很多逆序的單詞,比如dog和god,evil和live等等。現在給出乙份包含n個單詞的單詞表,其中每個單詞只出現一次,請你找出其中有多少對逆序單詞。第1行 1個整數,n,表示單詞數量。2 n 50,000。第2.n ...