T
은 n
개의 노드와 l
잎이있는 나무가 있습니다.정확히 K 잎이 들어있는 하위 트리를 선택하십시오.
정확히 k (<=l)
잎이 들어있는 일부 하위 트리를 선택해야합니다. 노드 t
의 조상의 하위 트리를 선택하면 t
의 하위 트리를 선택할 수 없습니다. 예를 들어
는 :
이 13 개 노드 (7 잎)가 트리 T
입니다.
k = 4
잎을 선택하려면 노드 4와 6 (또는 노드 2와 5)을 선택할 수 있습니다. 이것은 선택의 최소 수입니다. (노드 6, 7, 8, 9 중 하나를 선택할 수 있지만 최소는 아닙니다).
k = 5
잎을 선택하려면 노드 3을 선택할 수 있으며 최소 선택 개수입니다.
하위 트리의 최소 수를 선택하고 싶습니다. 나는 BFS와 동적 프로그래밍을 사용하는 O(nk^2)
과 O(nk)
알고리즘 만 찾을 수 있습니다. 이것을 선택하면 더 좋은 해결책이 있습니까?
감사합니다 :)
간단한 예를 들어 주시겠습니까?하위 트리 수를 최소한으로 유지하는 방법을 이해하지 못했습니다. 내가 가지고있는 것으로부터, 당신은 항상 k 잎을 가지고있는 고정 된 수의 나무를 가지고 있습니다. – Rubens
@Rubens 완료. 조언 주셔서 감사합니다 :) –
당신을 환영합니다! 그리고 이제 당신의 질문은 흥미로운 해결책을 얻기에 충분할만큼 충분 해졌습니다 ^^ 그런데, O (nk)보다 더 잘 볼 수 없습니다. 어쨌든 좋은 질문입니다! – Rubens