hiho 題目1 非法二進位制數 數字dp

2021-07-13 03:53:05 字數 932 閱讀 1169

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

小hi想知道在所有 n 位二進位制數(一共有2n

個)中,非法二進位制數有多少個。

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

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

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

n 位非法二進位制數的數目模109+7的餘數。

樣例輸入

3

樣例輸出

3

#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define esp 1e-8

const double pi = acos(-1.0);

const double e = 2.718281828459;

const int inf = 2147483647;

const long long mod = 1000000007;

typedef long long ll;

//freopen("in.txt","r",stdin); //輸入重定向,輸入資料將從in.txt檔案中讀取

//freopen("out.txt","w",stdout); //輸出重定向,輸出資料將儲存在out.txt檔案中

ll dp[105][5][5];

int main()

ll s = (dp[n][1][1] + dp[n][1][0]) % mod;

cout << s << endl; }

}

hiho 1318 非法二進位制數

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 如果乙個二進位制數包含連續的兩個1,我們就稱這個二進位制數是非法的。小hi想知道在所有 n 位二進位制數 一共有2n個 中,非法二進位制數有多少個。例如對於 n 3,有 011,110,111 三個非法二進位制數。由於結果可能...

二進位制數數

對於演算法競賽來說,演算法的效率自然是很重要的。有些時候我們可以使用一切巧妙地辦法借助資料本身的特點進行處理。比如今天這個題。問題描述 給定l,r。統計 l,r 區間內的所有數在二進位制下包含的 1 的個數之和。如5的二進位制為101,包含2個 1 輸入格式 第一行包含2個數l,r 輸出格式 乙個數...

藍橋杯訓練題目 (二進位制數數)

順便說明一下真正的取餘過程。十進位制轉二進位制 用十進位制數除以二進位制數,得到的每一位餘數就是二進位制數的構成,但是要倒序輸出才是正常的二進位制。過程如下 比如整數10 10 2 0 10 2 5 5 2 1 5 2 2 2 2 0 2 2 1 注意上一步中因為餘數已經為0了,同時下一步中 1 2...