풀이를 잘못 떠올리신 것 같습니다.
지금 반례는 못 찾겠지만, 분명 존재합니다.
정해는 트리 DP입니다.
DP1[i] = i의 서브트리에서 i를 얼리어답터로 했을 때 필요한 최소 개수
DP2[i] = i의 서브트리에서 i를 얼리어답터로 하지 않았을 때 필요한 최소 개수
이렇게 식을 정의하면 풀립니다.
+ 65번 줄, 70번 줄은 디버깅하면서 쓴 것 같은데 지워주셔야 합니다.
2533번 - 사회망 서비스(SNS)
풀이를 잘못 떠올리신 것 같습니다.
지금 반례는 못 찾겠지만, 분명 존재합니다.
정해는 트리 DP입니다.
DP1[i] = i의 서브트리에서 i를 얼리어답터로 했을 때 필요한 최소 개수
DP2[i] = i의 서브트리에서 i를 얼리어답터로 하지 않았을 때 필요한 최소 개수
이렇게 식을 정의하면 풀립니다.
+ 65번 줄, 70번 줄은 디버깅하면서 쓴 것 같은데 지워주셔야 합니다.
댓글을 작성하려면 로그인해야 합니다.
ricky23 3년 전
논리구조는 이렇게 했습니다.
루트 노드는 1로 고정 했고,
DFS를 통해서 먼저 쭉쭉 들어갑니다
1) 만약 Leaf 노드이면 부모 노드를 Early Adopter로 만든다
2) 만약 자식 노드에 Early Adopter가 있으면 본인은 Early Adopter가 될 필요 없지만,
자식 중에 Early Adopter가 없으면 본인이 Early Adopter가 된다.
3) Root ( 1번 노드 ) 를 기준으로,
Root 노드가 만약 Early Adopter 이면 상관 없지만,
Early Adopter가 아닌데 자식노드들 중 Early Adopter가 아닌게 있다면 자신이 Early Adopter 가 된다.
ㅜㅜ 확인부탁드립니다