문제

$ e $ 세트 $ s $ 에 대해 정의 된 동등성 관계가되도록합니다. $ e $ $ m (s_1, s_2)= 1 $ $ S_1 $ $ S_2 $ 은 동일한 클래스 및 $ 0 $ $ M $ 은 비싸다 ( $ o (n ^ 2) $ )입니다. 나는 효율적인 데이터 구조 $ d $ "주어진 $ s $ < / span>, $ d $ $ s '$ 과 동일한 동등한 클래스에서 SPAN 클래스="수학 용기"> $ S $ "? 순진한 접근 방식은 $ d $ 및 테스트에서 요소 별 요소를 검색하는 것입니다. 그러나 다른 해결책이 있습니까?

도움이 되었습니까?

해결책

최상의 최선은 Union-Press 데이터 구조를 사용하여 현재 알려진 모든 동등을 추적하는 것입니다.처음에는 각 요소가 자체 그룹에 있습니다.두 요소가 동일하다는 것을 알게 될 때마다 그룹을 병합합니다 (노동 조작을 통해).

그런 다음 쿼리에 응답하기 위해 할 수있는 최선은 모든 그룹 ( $ s $ 포함 된 것) 이외의 그룹을 열거하는 것입니다.대표 각 그룹에 대해 $ x $ 을 테스트하고 $ s $ $ x $ .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top