Tree DP 이해하기
·
PS/알고리즘
특정한 i번째 노드를 루트로 하는 서브 트리에 대해 i번째 루트 노드를 포함했을 때와 포함하지 않았을 때 중 조건에 맞는 답을 정의한다.DP[i]: i를 루트 노드로 하는 서브 트리에 있는 노드에 적힌 수들의 합특정 노드를 출발점으로 하여 새로운 DFS가 진행한다고 하더라도, 이전에 한 번이라도 방문된 노드는 다시 가지 않도록 하면 트리를 탐색하는 것과 같아진다.int dfs(int cur) { // 이미 방문한 곳은 가지 않도록 한다. if (visit[cur]) return dp[cur]; visit[cur]= true; // cur와 인접한 노드를 방문한다. for (auto next: node[cur]) { // 이미 방문한 곳 X if (visit[next]) continu..