jangzzang   4년 전

문제는 이렇습니다. 

가중치가 있는 트리에서 두 노드사이의 경로중 최소 가중치간선 , 최대 가중치 간선을 찾아야합니다.

DP를 활용한 LCA 풀이를 보니까 경로들도 어떻게 구하는 과정에서 시간을 줄이는 것 같은데,

세그트리를 활용한 LCA는 어떻게 경로들을 빠르게 찾을 수 있을지 잘 모르겠습니다.

SEG트리를 활용한 LCA풀이에서는 세그트리를 펼쳐서 노드중 depth값이 가장 최소인 node를 찾아가는 식으로

풀었습니다. 아,물론 LCA를 찾아가는 과정에서 TLE.... 

 만약, 이과정에서 경로의 가중치를 같이 구해야한다면, 가중치 최소 segTree 최대 segTree를 만들어서

짜야할 것 같은데, segTree의 리프노드를 어떻게 설정해야 할 지가 감이 안잡히네요 ㅠㅠ ..

혹시  segTreee로 방법을 아시는 분 조언 부탁드리겠습니다! 

jangzzang   4년 전

아.. 굳이 lca를 찾지 않아도, 트리의 가중치만 어떻게 구간으로 펼치면 될 것 같긴한데.. 흠..

oree2113   4년 전

임의의 두 정점의 경로를 하나의 연속된 구간으로 바꾸는 방법은 없는걸로 압니다.

다만 비슷한 테크닉으로 Heavy Light Decomposition이 있으니, 참고해보시면 좋을 것 같습니다.


jangzzang   4년 전

ㅠㅠㅠ그렇군요.. 공부가 더 필요한 부분이였다니..

답변 정말 감사드립니다~~!!

댓글을 작성하려면 로그인해야 합니다.