How We Coding

### DP ###

### SRM363 Div2 Level 2 ###


<소스코드>


d[i] : n 명이 하는 악수가 성립하는 조합의 수.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdio>
 
long long d[51];
 
class HandsShaking {
public:
    long long countPerfect(int n) {
        long long *ret = &d[n];
        if(n < 2return 1;
        if(n == 2return 1;
        if(*ret) return *ret;
 
        for(int i=0; i<=n-2; i+=2) {
            *ret += (countPerfect(i)*countPerfect(n-2-i));
        }
        
        return *ret;
    }
};
 

cs


>> 이번 문제에서 나온 수를 카탈란 수 라고 한다...