5개의 댓글이 있습니다.
-
-
ibroker -
간선 가중치들의 집합을 C={c1, ..., ci, .., cj, .. cn} 라고 합시다.
현재 선택할 수 있는 간선 가중치의 범위가 ci부터 cj까지라고 하면, 간선의 가중치가 ci~cj사이에 있는
edge들 만으로 새로운 그래프를 구성합니다.
이 새로운 그래프에서 1번문제 같은 경우는 spanning tree가 있는지 검사하고, 2번문제 같은 경우는 path가 있는지 조사합니다.
(즉, 단순히 답이 존재하는지 존재 유무를 결정합니다.)
만약 답이 존재하지 않는다면 범위를 ci ~ cj+1로 넓히고, 답이 존재한다면 ci+1 ~ cj로 범위를 좁힙니다.
이런식으로 범위를 넓히거나 좁혀가면서 답을 계속 찾습니다.
답이 있는 것들 중에서 범위가 제일 좁은 놈을 결과로 출력하면 되겠지요.
15년 전 link
-
-
-
Toivoa -
union-find disjoint set을 이용하시면 됩니다. 슬라이드에 있는 문제는 uva에 magic car (http://acm.uva.es/p/v104/10457.html) 와 같은 문제입니다. 경로까지 구하고 싶다면 답이 존재하는 최대/최소 속도를 구한 후에 해당 edge들로만 구성된 graph에서 dijkstra 등을 이용하시면 됩니다.
15년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
CYPark
15년 전