Algorithm

[BOJ 11051] 이항계수2 - 동적계획법

승우승 2018. 11. 9. 11:36
반응형

문제

https://www.acmicpc.net/problem/11051


사실 이항계수의 성질만 잘 알고 있다면 쉽게 풀 수 있는 문제입니다.

파스칼의 법칙? 인가요? nCr = (n-1)Cr + (n-1)C(r-1) 입니다.


#include "pch.h"

#include <iostream>

#include <stdlib.h>


using namespace std;

const int MAX = 1001;

const int MOD = 10007;

int N, K;

int cache[MAX][MAX];

void init()

{

for (int i = 1; i <= N; i++)

{

cache[i][1] = i;

cache[i][i] = cache[i][0] = 1;

}

}

void sol()

{

for (int i = 3; i <= N; i++) {

for (int j = 2; j < i; j++) {

cache[i][j] = cache[i - 1][j] % MOD + cache[i - 1][j - 1] % MOD;

}

}

}

int main()

{

cin >> N >> K;

if (N < 1 || N >= MAX || K<0 || K>N)

exit(-1);


init();

sol();

cout << cache[N][K] %MOD << endl;

return 0;

}



반응형