반응형
출처: https://www.acmicpc.net/problem/8895
Input
4
4 1 2
4 1 1
5 2 4
20 2 1
Output
2
0
4
6402373705728000
▶ [BOJ] 1328 고층빌딩와 동일한 문제로 해당 풀이 참조
▶ 동적계획법(Dynamic Programming, DP)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = null;
int T = Integer.parseInt(br.readLine());
while(T-- > 0) {
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int L = Integer.parseInt(st.nextToken());
int R = Integer.parseInt(st.nextToken());
long[][][] DP = new long[21][21][21];
DP[1][1][1] = 1;
for(int i=2; i<=N; i++){
for(int j=1; j<=L; j++){
for(int k=1; k<=R; k++){
DP[i][j][k] += DP[i-1][j][k]*(i-2);
DP[i][j][k] += DP[i-1][j-1][k];
DP[i][j][k] += DP[i-1][j][k-1];
}
}
}
// 정답출력
System.out.println(DP[N][L][R]);
}
}
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 11656 접미사 배열 (0) | 2021.02.26 |
---|---|
[BOJ] 백준 1328 고층빌딩 (0) | 2021.02.26 |
[BOJ] 백준 2505 두 번 뒤집기 (0) | 2021.02.26 |
[BOJ] 백준 5620 가장 가까운 두 점의 거리 (0) | 2021.02.26 |
[BOJ] 백준 10090 Counting Inversions (0) | 2021.02.26 |
댓글