win198978   3년 전

안녕하세요. 

문제를 아래 방법과 같이 풀었는데, 7퍼센트 즈음에서 틀렸습니다..가 나옵니다.

어디서 틀린지 반례 혹은 논리적 오류를 알려주시면 감사하겠습니다.

풀이 방법은 다음과 같습니다.

1. 모든 노드의 color를 0으로 두고, i 번 노드와 i 번 노드의 부모 사이 엣지를 끊었을 경우 i 번 노드를 루트로 하는 서브트리의 모든 노드의 color를 증가시킨다.

2. i 번 노드와 j 번 노드가 연결되었는지를 두 가지를 체크하여 확인한다.

     - i 번 노드와 j 번 노드의 색이 같은지 확인

     - i 번 노드와 j 번 노드의 LCA의 색이 i 번 노드와 같은지 확인

1.의 시간복잡도를 O(lgN)으로 만들기 위해 그래프를 dfs 경로 순대로 재배치하면 각 노드 별로 자신이 루트가 되는 서브트리의 색을 1 증가시키는 것을 segment tree +  lazy propagation로 풀었습니다.

고수님들의 조언 부탁드립니다.

감사합니다.

win198978   3년 전

20번째 줄의 Math.log가 natural log였습니다. 하하하하하하핳.....

아래와 같이 수정하면 동작합니다.

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