본문 바로가기
알고리즘/DP

1010 다리놓기

by tryotto 2019. 2. 7.
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
#include <stdio.h>
#include <cstring>
 
using namespace std;
 
int dp[40][40= { 0 };
 
int main() {
    int t,a,b;
    scanf("%d"&t);
    getchar();    
    
    while(t--){
        for (int i = 1; i <= 30; i++) {
            dp[1][i] = i;
        }
 
        scanf("%d %d"&a, &b);
 
        for (int i = 1; i < a; i++) {
            for (int j = i; j < b; j++) {
                for (int h = i; h <= j; h++) {
                    dp[i + 1][j+1]+=dp[i][h];
                }
            }
        }
 
        printf("%d\n", dp[a][b]);
        memset(dp, 0sizeof(dp));
    }
}
cs


'알고리즘 > DP' 카테고리의 다른 글

분할수 더블릿  (0) 2019.02.08
1932 정수삼각형 (숫자 삼각형 더블릿)  (0) 2019.02.07
9465 스티커  (0) 2019.02.07
11727 타일(2)  (0) 2019.02.07
11726 타일(1)  (0) 2019.02.07