본문 바로가기
PS/내가 보려고 쓰는 풀이

BOJ 10649

by dicohy27 2022. 11. 1.

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

 

10649번: 프리스비

농부 존과 그의 소들은 프리스비를 하며 놀고 있다. 베시가 프리스비를 던지자, 마크한테 갔고 결국 마크네 팀에게 프리스비가 넘어갔다! 마크의 키는 H이고(1 <= H <= 1,000,000,000), 마크 근처에 있

www.acmicpc.net

  1. dp 풀이
    비트마스킹 dp로 풀면 됨. S에 속하는 모든 i에 대해 i가 가장 밑에 가는 경우를 계산해주면 된다.
    dp[S] = min(dp[S \ i], P[i] - sum(W[S \ i]))
    S에서 높이 합이 H이상인 모든 경우에 대해 ans를 dp값으로 업데이트 해주면 된다.
  2. 그리디 풀이
    S가 정해졌을때 P[i] + W[i]가 큰 순서대로 아래부터 쌓는 것이
    min(P[i] - sum(W[1..(i - 1)])) = min(P[i] + W[i] - sum(W[1..i]))를 가장 크게 하는 것을
    수학적 귀납법으로 증명할 수 있다.

'PS > 내가 보려고 쓰는 풀이' 카테고리의 다른 글

CF 1732D1  (0) 2022.11.04
CF 1732C1  (0) 2022.11.04
BOJ 18320  (0) 2022.10.31
CF 1741F  (0) 2022.10.26
CF 1715C  (0) 2022.10.26