[14.11.26] 아이스크림과 의문의 약
-
Upload
kenny-park -
Category
Education
-
view
56 -
download
1
description
Transcript of [14.11.26] 아이스크림과 의문의 약
아이스크림과 의문의 약13045 박현민
Introduction
아이스크림과의문의 약 GSHS에는 N명의 학생이 있다.
기말고사가 끝난 어느날 GSHS의 선생님들이 학생들에게 줄 아이스크림을 K개 사왔다.
그런데 마음씨가 나쁜 어떤 선생님이 N명의 학생들을 1학기 성적순으로 한줄로 세웠다.
성적이 높은사람부터 각자가 먹을 수 있는 한도 내에서는 아이스크림을 마음껏 먹고 다음사람에게 아이스크림을 먹을 기회를 주라고 했는데(꼴지인학생 다음에는 1등인 학생이 아이스크림을 먹는다.),
하나도 먹지 않으면 벌점을 주겠다고 했다. 그런데 갑자기 sutekine선생님이 K개의 아이스크림중 마지막 한개에 성분을 알 수 없는 미지의 약을 넣었다.
그리고 그 사실을 모든 학생들에게 알렸다. 이 때, 과연 1학기 성적이 몇등인 학생이 그 미지의 약을 먹을까?
단, 각 학생들은 GSHS의 학생답게 매우 논리적이고 천재적으로 자신의 목표를 위해 최선을 다해 아이스크림을 먹는다.
또한, 각 학생들은 N명의 학생들을 자기가 싫어하는 순서대로 미지의 약을 먹이고 싶어 하는데 GSHS의 학생답게 똘끼가 넘쳐서 자기 자신을 싫어하는 학생들이 없다고 말할 수 없다.
http://koistudy.net/?mid=prob_page&NO=201
Dynamic ProgramingTable Definition
b[i][j] i번째 사람이 j번째 사람을 싫어하는 순위
d[i][j] i번째 사람에서 j개의 아이스크림이 남았을 때 마지막에 먹는 사람의 번호
d[i][0]=i-1
d[i][1]=i
Dynamic ProgramingOperation
Repetition For i = 2 … K
For j = 1 … N
For k = i–1 … (i-a[j] or 0)
b[j][d[j+1][k]]의 최솟값을 찾는다
해당 값이 있는 위치를 d[j][i]에 대입
Conclusion d[1][K]
Dynamic ProgramingRealization
감사합니다