Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Mar 20, 2025

🧷 문제 링크

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

🧭 풀이 시간

36분
image

👀 체감 난이도

✏️ 문제 설명

상이 N개 준비되어 있다.
i번째 상을 얻으려면, 티켓을 한 장 낸 후 p[i]의 확률로 앞면이 나오는 동전을 던져서 앞면이 나와야 하고, 이 때 w[i]만큼의 코인을 얻는다. (만약 뒷면이 나온다면, 티켓은 사라진다.)

처음에 티켓 한 장이 있을 때, 상을 고르는 순서를 잘 정해서 얻는 코인의 기댓값을 최대로 해보자.

🔍 풀이 방법

[사용한 알고리즘]

  • 그리디 알고리즘 (Exchange argument)

어떤 임의의 두 상 (a, b)에 대해, 어떤 상이 먼저 와야 얻을 수 있는 코인의 기댓값이 높아지는지 생각해보면 된다.
a가 먼저 때의 기댓값과, b가 먼저 왔을 때의 기댓값을 각각 구해서 비교하면 된다. ( = exchange argument)

기댓값의 선형성에 의해, 전체 기댓값을 구할 필요 없이 a와 b가 관여하는 부분만 구해줘도 무관하다.

구한 값을 가지고 sort의 반환 조건을 정해주면 된다.

⏳ 회고

식 세우는 게 어려웠고 기댓값 중 a, b가 관여하는 부분만 구해도 된다는 건 증명이 안돼서 그냥 감으로 했다..

@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Mar 20, 2025
@ShinHeeEul ShinHeeEul merged commit 2d6d6b2 into main Mar 20, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants