문제
2225번: 합분해
첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다.
www.acmicpc.net
해결 방법
dp[i][j] = 0 ~ i까지의 정수 j개를 더해서 그 합이 i가 되는 경우의 수
내 코드(C++)
// [2225] 합분해
// https://www.acmicpc.net/problem/2225
// dp
// dp[i][j] = 0 ~ i까지의 정수 j개를 더해서 그 합이 i가 되는 경우의 수
#include <iostream>
using namespace std;
int main(void)
{
long dp[201][201];
int n, k;
cin >> n >> k;
for (int i = 0; i < 201; i++) {
dp[0][i] = 0;
dp[1][i] = i;
dp[i][0] = 0;
}
for (int i = 2; i <= n; i++) {
for (int j = 1; j <= k; j++) {
dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
dp[i][j] %= 1000000000;
}
}
cout << dp[n][k] << endl;
}
반응형
'Baekjoon > DP' 카테고리의 다른 글
[1003] 피보나치 함수(C++) (0) | 2020.04.05 |
---|---|
[10844] 쉬운 계단 수 (0) | 2020.04.05 |
[2193] 이친수 (0) | 2019.09.15 |
[2163] 초콜릿 자르기 (0) | 2019.09.15 |
[2133] 타일 채우기 (0) | 2019.09.15 |