티스토리 뷰

BOJ 9323 - 무임승차

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

 

9323번: 무임승차

벌금의 기댓값은 확인받을 확률 * 벌금 으로 계산할 수 있으며, 각 운행 경로는 독립적이므로 경로 X에서의 기댓값을 E[X], 경로 Y에서의 기댓값을 E[Y]라 할 때, X-Y 경로의 기댓값은 E[X]+E[Y]가 된다

www.acmicpc.net

기차를 탈 때 티켓 요금과 무임승차 벌금을 고려하여 출발지에서 도착지까지의 최소 기댓값을 구하는 문제.

풀이:

더보기

우선, n개의 도시를 거치는 표를 사는 것을 마치 n-1개의 독립적인 표를 사되, 첫 도시에서만 s원을 내야 하는 것처럼 생각할 수 있다. 이렇게 생각하게 되면 아래와 같은 점화식을 뽑을 수 있다.

dp[i][0] = i번 노드까지 도착했고, 여기서 출발하며 표를 산다면 s원을 안내도 됨

dp[i][1] = i번 노드까지 도착했고, 여기서 출발하며 표를 산다면 s원을 내도 됨

 

그 후에는 이제 n*2개의 노드 위에서 다익스트라를 돌리면 된다. 표를 사는 간선이라면 두번째 차원이 0인 곳으로 가는 것이고, 표를 사지 않는 간선이라면 두번째 차원이 1인 위치로 가는 것이다.

코드: http://boj.kr/c77911f4550e46d9b4afbc5c4e4f796f

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함