본문 바로가기

PS/Study

카탈란 수 ( Catalan Number )

반응형
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+10, M=1e9+7;
typedef long long ll;
ll inv[N]={0,1}, cat[N]={1,1};

int main(){
    int n;
    scanf("%d",&n);
    for(int i=2; i<N; ++i) inv[i]=inv[M%i]*(M-M/i)%M; // modulo inverse
    for(int i=2; i<N; ++i) cat[i]=cat[i-1]*(4*i%M-2)%M*inv[i+1]%M; // catalan numbers
}

C(i) = C(i-1) x (4i - 2)

반응형

'PS > Study' 카테고리의 다른 글

공부할 알고리즘 목록  (0) 2021.11.03
알고리즘별 기본 문제 (수정 예정)  (0) 2021.08.19
모듈러 인버스 (modulo inverse)  (0) 2021.08.09
에라토스테네스의 체  (0) 2021.08.09
N! mod P  (0) 2019.09.20