반응형
https://www.acmicpc.net/problem/1010
조합 문제였습니다.
풀이방법
겹치지 않게 다리를 놓는 방법은 순서에 상관없이 뽑는 조합의 방식과 유사합니다.
m개 중 n개를 뽑는 경우의 수를 출력하면 됩니다.
Code
#include <bits/stdc++.h>
using namespace std;
int t;
int comb[31][31];
int dfs(int n, int k){
if(n == k || k == 0) return 1;
int &ret = comb[n][k];
if(ret) return ret;
ret = dfs(n-1,k) + dfs(n-1,k-1);
return ret;
}
int main(){
cin >> t;
while(t--){
int n, m;
memset(comb,0,sizeof(comb));
cin >> n >> m;
cout << dfs(m,n) << '\n';
}
}
'Algorithm > Math' 카테고리의 다른 글
(C++) - 백준(BOJ) 2998번 : 8진수 (0) | 2020.01.08 |
---|---|
(C++) - 백준(BOJ) 1789번 : 수들의 합 (0) | 2020.01.04 |
(C++) - 백준(BOJ)코딩 11758번 : CCW 답 (0) | 2017.04.07 |
(C++) - 백준(BOJ) 2942번 : 퍼거슨과 사과 (0) | 2017.04.06 |
(C++) - 백준(BOJ) 2960번 : 에라토스테네스의 체 (0) | 2017.04.02 |