1865. 웜홀.

·2025년 8월 10일
0

백준 알고리즘

목록 보기
211/270

왜 틀렸을까?

: 여기서는 dist[sstart] != 1e9 조건식 필요 없다.

https://www.acmicpc.net/board/view/50494


반례

1
4 2 1
2 3 -1
3 2 -1
1 4 100

=> YES 나와야 함.

특징

  • 웜홀의 경우, 특정 시작값이 주어지지 않았다. 웜홀을 통해 시작위치와 종착지를
    알 수 있다.

  • 문제를 읽어보면, 시작위치를 기준으로 해서 하는 것이 아니라,
    모든 정점를 기준으로 잡고 음의 사이클이 발생하는지를 확인하는 문제다.

복기

  • 벨만포드는 시작 dist를 기준으로 해서 INF 가 아닌 친구들을 탐색 조차 못한다. 그런데 웜홀의 경우는 시작점을 기준으로 하는 것이 아닌, 특정 지점으로 하고 있다.

  • dist 조건 처리의 의미는 시작점으로 해서 단절된 정점을 절대로 연결할 수 없다는 것을
    의미한다. 하지만, 웜홀은 특정 지점이므로, 모든 정점에 대해서 확인을 해야 한다.

  • 모든 정점을 start 정점으로 놓고 하는것도 좋겠지만, 모든 정점에 대한 사이클을 확인하는
    것이므로, 벨만 포드 수행 할 때 단절 없이 진행해야만,
    모든 정점을 대상으로 음의 사이클이 발생하는지를 확인할 수 있따.
    -> 아래의 반례를 생각해보면, YES 가 나와야 하는데, dist 조건문 집어넣으면
    당연히 NO가 나올 것이다.

  • 반례
    1
    4 2 1
    2 3 -1
    3 2 -1
    1 4 100

profile
🔥🔥🔥

0개의 댓글