Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Feb 27, 2025

🧷 문제 링크

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

🧭 풀이 시간

62분

👀 체감 난이도

✏️ 문제 설명

  • 정점이 N개인 트리의 각 정점에 가중치가 달려있다. 질문을 Q개 처리해보자.
  • 각 질문은 (x, y, k)로 표현되며, 정점 x에서 정점 y로 가는 경로 상에 존재하는 정점들의 가중치 중 K번째로 작은 가중치를 구해야 한다.

🔍 풀이 방법

[사용한 알고리즘]

  • heavy-light 분할
  • 머지 소트 트리
  • 이분 탐색

  • 만약 트리가 아니라 수열에서 어떤 부분의 k번째 가중치를 찾는 문제였다면, 이 문제는 머지 소트 트리 + 매개 변수 탐색으로 해결할 수 있다.
  • heavy-light 분할로 트리를 일자로 편 다음, heavy와 light 체인 각각에 대한 머지 소트 트리를 전부 만들어준다.
  • 질문이 들어오면, 경로 상에 존재하는 체인들에서 매개 변수 탐색으로 k번째 가중치가 되는 값을 찾아주면 된다.
  • 시간 제한이 엄청 빡빡해서, 가중치를 압축해야 겨우 통과한다.

⏳ 회고

  • 드디어 클래스 8을 달성했다 ㅎ ㅎ

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