如果乙個二進位制數包含連續的兩個1,我們就稱這個二進位制數是非法的。
小hi想知道在所有 n 位二進位制數(一共有2n
個)中,非法二進位制數有多少個。
例如對於 n = 3,有 011, 110, 111 三個非法二進位制數。
由於結果可能很大,你只需要輸出模109+7的餘數。
乙個整數 n (1 ≤ n ≤ 100)。
n 位非法二進位制數的數目模109+7的餘數。
樣例輸入
3樣例輸出
3
可以先找合法的二進位制數,用總數減去合法的,,就是不合法的。
dp[i][1]是前i位,最後一位是1的合法二進位制數有多少。
dp[i][0]是前i位。最後一位是0的合法二進位制數有多少。
則,dp[i][1]=dp[i-1][0];
fp[i][0]=dp[i-1][1]+dp[i-1][0];
**:
#includeusing namespace std;
const int maxn=110;
const long long mod=1e9+7;
long long dp[maxn][2];
long long a[maxn];
void q(int x)
}int main()
printf("%lld\n",(a[n]+mod-(dp[n][0]+dp[n][1])%mod)%mod);
return 0;
}
hiho 1318 非法二進位制數
時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 如果乙個二進位制數包含連續的兩個1,我們就稱這個二進位制數是非法的。小hi想知道在所有 n 位二進位制數 一共有2n個 中,非法二進位制數有多少個。例如對於 n 3,有 011,110,111 三個非法二進位制數。由於結果可能...
統計二進位制數 dp
題目描述 輸入乙個正整數m,請輸出從0到m中每乙個數字二進位制數中含有1的個數的總和,由於數值較大結果需要模100000.輸入格式 乙個m輸出格式 二進位制數中含有1的個數的總和s 輸入輸出樣例輸入2 輸出2輸入5 輸出7說明 提示 樣例說明 20 的資料 m 500 50 的資料 m 1000 7...
hiho 題目1 非法二進位制數 數字dp
如果乙個二進位制數包含連續的兩個1,我們就稱這個二進位制數是非法的。小hi想知道在所有 n 位二進位制數 一共有2n 個 中,非法二進位制數有多少個。例如對於 n 3,有 011,110,111 三個非法二進位制數。由於結果可能很大,你只需要輸出模109 7的餘數。乙個整數 n 1 n 100 n ...