-
2225 - 합분해Algorithm/BOJ 2020. 3. 1. 17:2512345678910111213141516171819202122232425262728293031323334353637383940//2225 - 합분해#include <iostream>using namespace std;#define MOD 1000000000int N, K;int cache[201][201];void init(){cin >> N >> K;for(int i = 0; i<=N; ++i)for(int j = 0; j<=K; ++j)cache[i][j] = -1;}int dp(int cost, int k){if(cost < 0) return 0;if(k < 0) return 0;if(!k && !cost) return 1;int& ret = cache[cost][k];if(ret != -1)return ret;ret = 0;for(int i = 0; i<=N; ++i){ret += dp(cost - i, k-1);ret %= MOD;}return ret;}int main(){init();cout << dp(N, K);}
cs https://www.acmicpc.net/problem/2225
2225번: 합분해
첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다.
www.acmicpc.net
합분해
dp문제
C(cost, k) : k번째에 cost를 만들수 있는 경우의 수
'Algorithm > BOJ' 카테고리의 다른 글
가장 긴 바이토닉 부분 수열 - 11054 (0) 2020.03.01 가장 큰 정사각형 - 1915 (0) 2020.03.01 동전 2 - 2294 (0) 2020.03.01 동전 1 - 2293 (0) 2020.03.01 GPA - 17662 (0) 2020.02.28