BOJ 1010번 : 다리 놓기 본문
손풀기 문제로 풀었다.
기본적인 dp문제였고, 경우의 수를 물어보았으니, dp안에 들어가는 원소는 경우의 수가 될것 이라고 예상하고 풀면 되는 문제였다.
또한, 표를 한번 그려보면 어렵지 않게 규칙을 찾을 수 있다.
<Solution>
N과 M에 대해 표를 그려보면 아래와 같다.
위와 위의 왼쪽 원소의 합이 자신의 값이 되는것을 알 수 있다. 즉, 아래의 점화식 표현이 가능하다.
dp[m][n] = dp[m-1][n-1] + dp[m-1][n]
<소스코드>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include<iostream>
using namespace std;
void Solve() {
int t, n, m;
cin >> t;
for (int x = 0; x < t; x++) {
int dp[31][31] = { 0, };
cin >> n >> m;
for (int i = 1; i <= m; i++) {
dp[i][1] = i; //초기값
for (int j = 2; j <= n; j++)
dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
}
cout << dp[m][n] << endl;
}
}
int main() {
Solve();
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
<문제>
https://www.acmicpc.net/problem/1010
1010번: 다리 놓기
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다.
www.acmicpc.net
'BOJ' 카테고리의 다른 글
BOJ 2606번 : 바이러스 (0) | 2020.04.14 |
---|---|
BOJ 1260번 : DFS와 BFS (0) | 2020.04.13 |
BOJ 1670번 : 정상 회담 2 (0) | 2020.04.12 |
BOJ 15954번 : 인형들 (1) | 2020.04.11 |
BOJ 1011번 : Fly me to the Alpha Centauri (0) | 2020.04.10 |
Comments