Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Sep 12, 2025

🧷 문제 링크

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

🧭 풀이 시간

60분

👀 체감 난이도

✏️ 문제 설명

정점 N개 짜리 그래프가 주어지고, 간선에 가중치가 존재한다.
x번 집에는 2^x의 이슬이 있고, 출발지와 도착지를 제외하고 거치는 집들에 있는 이슬을 모두 마시게 된다.

Q번의 질문에 답해보자.

  • 방울을 2^c이상 마실 수 없는 상황에서 s번 집 -> e번 집의 최단 경로?

🔍 풀이 방법

  • 플로이드-워셜
  • 오프라인 쿼리

쿼리를 일단 다 받아놓고 c를 기준으로 정렬해서 플로이드 워셜을 천천히 돌렸다.
새로운 2차원 배열 val을 둬서, val[s][e] = 현재 상황에서 s와 e가 모두 limit이상일 때의 최단 경로로 정의했다.

쿼리를 처리하면서 limit이 늘어날 때마다 val[s][e]를 모두 업데이트 해줬다.
val[s][e] = min(cost[s][limit] + dist[limit][k] + cost[k][e], cost[s][k] + dist[k][limit] + cost[limit][e])

쿼리의 c, s, e값을 비교해서 dist 혹은 val에서 답을 구해줬다. 근데 왜 틀리지

⏳ 회고

요즘 문제 제출만 하면 계속 틀렸다고 그러니까 풀고 싶은 의지가 꺾인다.
아무리 생각해도 맞는데 좀 더 고민해봐야겠다

@oncsr oncsr added the fail 😢 해설을 보고 풀었거나, 못 풀었을 때 label Sep 12, 2025
@ShinHeeEul ShinHeeEul merged commit fe59ed9 into main Sep 12, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fail 😢 해설을 보고 풀었거나, 못 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants