트리에서 각 노드의 부모가 될 수 있는 노드 번호들을 알려주고
각 노드에서 부모노드는 단 한개임
부모의 값은 자식들의 값의 합일때
루트의 값을 구해라 해서
위상정렬을 생각했었는데
위상정렬은 트리에서 노드가 어느 깊이?에 있는지는 알아도 부모나 그런건 몰라서 안될거 같고
그럼 부모를 저장하면서 위상정렬 같이 할려고 했는데 그래도 이렇게 부모 가능성 있는 것들 여러개 알려주고 하니
그냥 트리 그려서 dfs할까도 생각해봤는데 시간이 너무 오래걸릴거 같은데 방법 뭐 없을까?
방향그래프의 인접리스트 느낌으로 트리를 만듬 / dfs를 한 번 돌아주면 각 노드마다 서브트리의 합을 구해줄 수 있음. - dc App
int dfs(v){ sum[v] = A[v]; for(auto i : g[v]) sum[v] += dfs(i); return sum[v]; } - dc App
특별히 다른 자료구조는 없는거구나 ㄳㄳ