지점 의 두더지가 거리만으로 지점 를 유일하게 알아낼 때, 가 를 식별한다고 하자. 트리가 경로라면 끝점 하나에서 모든 거리가 다르므로 두더지 한 마리면 충분하다. 이하에서는 경로가 아닌 트리를 생각한다.
리프의 집합을 , 어떤 리프에서도 식별되지 않는 지점의 집합을 라 하면 에 배치하는 것이 최적이다.
이제 를 구하자. 간선 를 끊은 뒤 쪽 성분을 라 하고, 그 높이와 지름을
로 둔다. 비리프 가 어떤 리프에서 식별될 필요충분조건은, 어떤 이웃 에 대해 인 것이다.
이 방향별 값은 리루팅 DP로 계산한다. 를 구할 때 인 이웃들의 가지 높이 와 두 개의 중 큰 두 값을 라 하면
자식에서 부모, 부모에서 자식 순으로 계산하되, 가지 높이 상위 개와 지름 상위 개를 보관하면 이웃 하나를 제외한 값도 상수 시간에 구한다. 모든 리프와 위 조건을 만족하는 이웃이 없는 비리프에 배치한다. 시간과 공간 복잡도는 이다.
증명
가 를 식별한다고 하자. 에서 방향의 이웃을 , 간선 를 끊었을 때 쪽 성분을 라 하면
안에 더 먼 지점이 있으면 그 경로에서 와 같은 거리의 지점을 만나기 때문이다. 따라서 는 의 지름 끝점이고, 반대쪽 끝점인 원래 트리의 리프도 를 식별한다. 반대로 가 지름 끝점이면 반대쪽 끝점에서 를 식별할 수 있다. 이는 라는 판정 조건을 준다. 또한 의 지점을 식별할 수 있는 두더지는 그 지점에 놓인 두더지뿐이므로, 반드시 직접 배치해야 한다.
각 리프에서 첫 분기점 직전까지의 경로도 적어도 한 마리를 요구한다. 그 경로 밖의 두더지는 분기점 바로 앞의 지점과 다른 가지의 지점을 구별할 수 없기 때문이다. 이 경로들은 서로 겹치지 않고, 해당 리프가 경로의 모든 지점을 식별하므로 와도 겹치지 않는다. 따라서 최소 마리가 필요하며 가 이를 달성한다.
리루팅 점화식에서 성분의 지름은 한 가지 안에 있거나 를 지나 두 가지를 잇는다. 따라서 가지들의 지름과 가장 긴 두 가지의 높이 합 중 최댓값을 취하면 된다.