문제 링크
- http://icpc.me/2533
문제 출처
- 2012 지역 본선 중등4
사용 알고리즘
- Tree DP
시간복잡도
- O(N)
풀이
문제를 잘 관찰하면 독립 집합 문제로 바뀐다는 사실을 알 수 있습니다.
이분 그래프이므로 이분 매칭을 돌려주고 싶지만, N이 최대 100만이기 때문에 더 빠른 풀이를 생각해야 합니다.
만약 i번째 사람이 얼리 어답터라면, 그 사람의 친구는 얼리 어답터여도 되고 아니여도 됩니다.
그러나 i번째 사람이 얼리 어답터가 아니라면, 그 사람의 친구들은 모두 얼리 어답터가 되어야 합니다.
dp[i][0] = i번째 정점이 얼리 어답터가 아닌 경우의 최댓값, dp[i][1] = i번째 정점이 얼리 어답터인 경우의 최댓값으로 정의를 한다면 Tree DP를 사용해 쉽게 구할 수 있습니다.
전체 코드
1 |
|