Algorithm/Problem Solving
2020. 4. 22. 21:26
(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)
문제 링크
- https://www.acmicpc.net/problem/2225
사용 알고리즘
- DP
풀이
- d[k][n] = 0 ~ n 정수 k개를 더해서 합이 n이 되는 경우의 수
- d[k][n] += d[k - 1][n - l] (0 <= l <= n)
소스 코드
- https://github.com/moomini/algorithm/blob/master/boj/2225.cpp
#include <cstdio> int d[203][203]; int main(void) { int n, k; scanf("%d %d", &n, &k); d[0][0] = 1; for (int i = 1; i <= k; ++i) { for (int j = 0; j <= n; ++j) { for (int l= 0; l <= j; ++l) { d[i][j] += d[i - 1][j - l]; d[i][j] %= 1000000000; } } } printf("%d\n", d[k][n]); return 0; } | cs |
'Algorithm > Problem Solving' 카테고리의 다른 글
[BOJ/10430] 나머지 (0) | 2020.04.22 |
---|---|
[BOJ/2011] 암호코드 (0) | 2020.04.22 |
[BOJ/9461] 파도반 수열 (0) | 2020.04.22 |
[BOJ/2133] 타일 채우기 (0) | 2020.04.22 |
[BOJ/1699] 제곱수의 합 (0) | 2020.04.20 |