최근 인터뷰에서 다음 질문을 받았습니다 : 사이클이없는 양방향 그래프 G가 있습니다. 각 모서리에는 약간의 무게가 있습니다. 또한 노드 K의 집합이 서로 분리되어야합니다 (일부 가장자리 제거). K 세트의 두 노드 사이에는 하나의 경로 만 있습니다. 목표는 제거 된 모서리의 전체 가중치를 최소화하고 집합 K에서 모든 노드를 서로 분리하는 것입니다.bidirected 그래프에서 가중치 끝을 제거하십시오.
내 접근 방식은 K 세트에서 각 노드에 대해 BFS를 실행하고 모든 노드 쌍 사이의 모든 경로를 K에서 결정하는 것이 었습니다. 그렇다면 경로 집합을 가질 것입니다 (각 경로는 모서리 집합입니다). 다음 단계는 동적 프로그래밍 방식을 적용하여 제거 된 가장자리의 최소 총 무게를 찾는 것입니다. 그리고 여기에서 나는 갇혔다. DP가 어떻게 수행되어야하는지에 대해 저에게 직접 도와주십시오.
감사합니다.
두 노드 사이의 하나의 경로 만이 있다면 당신은 _all_을 제거 할 필요는 없습니다 당신은 다른 사람과 모든 노드를 분리해야 사이? – BlackBear
아니요, 각 경로에서 하나의 가장자리를 제거하면 연결이 끊어집니다. 문제는 제거 할 모서리를 선택하는 방법입니다. –
내가이 질문을 이해한다면, K의 노드는 서로 연결이 끊어 져야하지만, K에없는 G 노드가 반드시 연결되어야하는 것은 아닙니다. 맞습니까? –