본문 바로가기

백준

2410 2의 멱수의 합

 

 

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <cstring>
#define xx first
#define yy second

using namespace std;
using i64 = long long;
using ii = pair<int, int>;
using ii64 = pair<i64, i64>;

#define MOD 1000000000
int ans;
int dp[1000005];

int main() 
{
    int n;
    scanf("%d", &n);
    
    dp[0] = 1;
    
    for (int two = 1; two <= n; two *= 2) {
        for (int i = 0; i <= n; i++) {
            if (i - two >= 0)
                dp[i] = (dp[i] + dp[i - two]) % MOD;
        }
    }
    
    printf("%d", dp[n]);
    
    return 0;
}

'백준' 카테고리의 다른 글

18917 수열과 쿼리 38  (0) 2022.04.30
15565 귀여운 라이언  (0) 2022.04.30
2251 물통  (0) 2022.04.07
10971 외판원 순회 2  (0) 2022.04.07
1992 쿼드트리  (0) 2022.04.05