Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Feb 26, 2025

🧷 문제 링크

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

🧭 풀이 시간

35분

👀 체감 난이도

✏️ 문제 설명

  • N*M 크기 격자의 각 칸마다 높이가 정해져있다.
  • 상하좌우 이동이 가능할 때, (x1,y1)에서 출발해서 (x2,y2)로 도착하는 경로 중, 지나는 도시들의 최대 높이를 최소화해보자.
  • 검사해야 하는 (x1,y1) , (x2,y2) 쌍은 Q개 주어진다.

🔍 풀이 방법

[사용한 알고리즘]

  • 최소 스패닝 트리
  • 최소 공통 조상

  • 상하좌우 이동을 간선으로 생각하면, (x1,y1)과 (x2,y2)를 잇는 간선의 가중치를 $\max(H[x1][y1], H[x2][y2])$로 볼 수 있다.
  • 크루스칼 알고리즘의 아이디어로 접근하면, 결국 최소 스패닝 트리 상에서의 경로 가중치 중 max값을 구하는 문제로 변한다.
  • 트리 구성하고, 경로 상의 가중치 max값 구하는 작업을 로그 시간에 처리하기 위해 희소 배열 또는 heavy-light 분할을 사용할 수 있다.

⏳ 회고

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