BOJ 9520 : NP-Hard

2021. 11. 16. 00:35PS/DP

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

이 문제를 풀기 전 KOI 2003 경찰차 문제를 풀고 오는 것을 추천한다.

 

우리는 이 문제를 좀 바꾸어 생각해보면, 1부터 N까지의 자연수를 순서대로 앞 또는 뒤에 수를 추가하는 방식으로 수열을 만들고, 이를 순서로 해서 모든 도시를 방문할 때 비용의 최솟값을 구하는 문제이다.

 

이는 dp로 해결할 수 있다.

dp[i][j] = 수열의 가장 왼쪽에 i가 있고, 가장 오른쪽에 j가 있을 때 최소 비용

 

dp[max(i,j)+1][j] = min(dp[max(i,j)+1][j], dp[i][j]+cost[i][max(i,j)+1])
dp[i][max(i,j)+1] = min(dp[i][max(i,j)+1], dp[i][j]+cost[j][max(i,j)+1])

 

경찰차 + 약간의 관찰이 들어간 문제이다. 괜찮다고 생각.

코드

'PS > DP' 카테고리의 다른 글

BOJ 2315 : 가로등 끄기  (0) 2021.11.16
BOJ 1126 : 같은 탑  (0) 2021.11.16
BOJ 5573 : 산책  (0) 2021.11.16
BOJ 1023 : 올바른 괄호  (0) 2021.08.17
BOJ 17428 : K번째 괄호 문자열  (0) 2021.08.14