2018. 6. 24. 14:35, 알고리즘/BOJ
https://www.acmicpc.net/problem/1328
DP[i][j]를 빌딩 i개가 있을 때, 왼쪽에서 j개가 보이는 경우의 수라고 해봅시다. 그러면 빌딩 i개에서 가장 높은 빌딩을 왼쪽에서 a번째에 배치했을 때의 상황을 생각해보면 DP[a][j-1]*(i-1-a)-th factorial * combination(i-1,a) 만큼의 경우의 수가 더해집니다. 이를 이용해 DP 테이블을 채우고, 이제 원래 구해야하는 N, L, R에 대해서도 비슷한 방식으로 가장 높은 빌딩을 어딘가에 배치한 이후의 상황을 생각하면 됩니다.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 2150번: Strongly Connected Component (0) | 2018.06.25 |
---|---|
[BOJ] 3012번: ZAPIS (0) | 2018.06.25 |
[BOJ] 1720번: 타일 코드 (0) | 2018.06.24 |
[BOJ] 2228번: 구간 나누기 (0) | 2018.06.22 |
[BOJ] 1708번: 볼록 껍질 (0) | 2018.06.22 |
[BOJ] 15684번: 사다리 조작 (2) | 2018.06.22 |
Comments