MY MEMO

[BAEKJOON] 1010 다리놓기 본문

ALGORITHM/BAEKJOON

[BAEKJOON] 1010 다리놓기

l_j_yeon 2017. 9. 26. 04:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
using namespace std;
 
vector<vector<int>> memorization;
 
int calculate(int n, int k)
{  
    if (k == 1) return n;
    if (n == k) return 1;
 
    int &ret = memorization[n][k];
    if (ret != -1) return ret;
     
    return ret = calculate(n - 1, k - 1) + calculate(n - 1, k);
}
 
int main()
{
    int for_count;
    scanf("%d", &for_count);
 
    memorization = vector<vector<int>>(31, vector<int>(31, -1));
 
    for (int i = 0; i < for_count; i++)
    {
        int left_bridge, right_bridge;
        scanf("%d %d", &left_bridge, &right_bridge);
        cout << calculate(right_bridge, left_bridge) << endl;
    }
 
    return 0;
}


'ALGORITHM > BAEKJOON' 카테고리의 다른 글

[BAEKJOON] 1463 1로 만들기  (0) 2017.09.26
[BAEKJOON] 1149 RGB거리  (0) 2017.09.26
[BAEKJOON] 1003 피보나치  (0) 2017.09.26
[BAEKJOON] 9095 123더하기  (0) 2017.09.26
[BAEKJOON] 11057 오르막 오르기  (0) 2017.09.16
Comments