Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Sep 27, 2025

🧷 문제 링크

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

🧭 풀이 시간

50분

👀 체감 난이도

✏️ 문제 설명

정점 N개인 트리가 있다.
리프 정점에 추가 정점을 하나 붙이는 데 드는 비용은 B이고, 리프 정점을 하나 떼는 비용은 D이다.
이 트리를 포화 이진 트리로 만드는 최소 비용을 구해보자.

🔍 풀이 방법

  • DP

정답이 되는 트리의 높이는 최대 34이다.
35를 넘어가면 항상 34 이하로 비용을 더 적게하여 만들 수 있다.

dp[n][h] = n을 루트로 하는 서브트리를 높이 h인 포화 이진 트리로 만드는 최소 비용
이라고 정의하고, dfs를 돌려서 dp를 계산해줬다.

dp[n][h]를 구할 때는 n의 자식들 i에 대해 dp[i][h-1]을 가져오거나, 정점이 모자라면 붙이는 행위를 해서 dp를 계산했다.

⏳ 회고

높이 상한만 잘 구하면 그 다음은 할 만한거 같다

@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Sep 27, 2025
@ShinHeeEul ShinHeeEul merged commit b32e717 into main Sep 27, 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