#include <iostream> #include <algorithm> using namespace std; #define MOD 1000000000 int N, K; long long dp[210][210]; int solve(int sum, int cnt) { if(cnt > K || sum > N) { return 0; } if(cnt == K && sum == N) { return 1; } if(dp[sum][cnt] != 0) { return dp[sum][cnt]; } for(int i = 0; i <= N; i++) { dp[sum][cnt] = (dp[sum][cnt] + solve(sum+i, cnt+1)) % MOD; } return dp[sum][cnt]; } int main(void) { // freopen("B2225_input.txt", "r", stdin); cin >> N >> K; cout << solve(0, 0); return 0; } | cs |
'Baekjoon > DP' 카테고리의 다른 글
[백준 2011] 암호코드 (DP) (C/C++) (★) (0) | 2020.01.22 |
---|---|
[백준 9461] 파도반 수열(DP) (C/C++) (0) | 2020.01.22 |
[백준 2133] 타일 채우기 (DP) (C/C++) (★★★) (0) | 2020.01.21 |
[백준 1699] 제곱수의 합 (DP) (C/C++) (0) | 2020.01.21 |
[백준 2579] 계단 오르기 (DP) (C/C++) (0) | 2020.01.18 |