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
35
36
37
38
39
40
#include <iostream>
#include <vector>
 
using namespace std;
 
vector<vector<int>> dp(35vector<int>(35-1));
 
 
int findAnswer(int m, int n) {
    if (m == n || n==0) {
        dp[m][n] = 1;
        return 1;
    }
    if (n == 1) {
        dp[m][n] = m;
        return m;
    }
 
    int& ret = dp[m][n];
    if (ret != -1
        return ret;
 
    return ret = findAnswer(m - 1, n - 1+ findAnswer(m - 1, n);
}
 
int main() {
    int t;
    cin >> t;
 
    for (int tc = 0; tc < t; tc++) {
        int n, m;
        cin >> n >> m;
 
        //mCn
        //결국 m개에서 n개 뽑는 문제와 같다 왜냐면 순서는 뽑고 나면 정해짐
        cout << findAnswer(m, n) << "\n";
    }
 
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 

이 문제는 결국 mCn 을 찾아내는 문제였다.

왜냐하면 일단 m개에서 n개를 뽑으면 다리끼리 겹쳐지지 못하므로 순서도 정해진다

 

 

'Baekjoon' 카테고리의 다른 글

[#9012] 괄호  (0) 2020.03.15
[#10828] 스택  (0) 2020.03.15
[#9465] 스티커  (0) 2020.03.14
[#9375] 패션왕 신혜빈  (0) 2020.03.14
[#11051] 이항 계수 2  (0) 2020.03.14

+ Recent posts