백준 1005 ACM Craft 혼내주기
위상정렬 문제. 종만북에서 위상정렬을 dfs를 돌린다음 방문 순서의 역순을 출력함으로 해결했던 기억이 있었는데, 이번에는 모든 정점에서 자신에게 들어오는 정점들을 따로 벡터에 저장해서 해결했다. target 정점을 시작으로, 자신에게 들어오는 정점 중 가장 시간이 오래 걸리는 정점을 재귀적으로 선택해서 건설 시간을 다 더하면 된다. #include #include #include #include using namespace std; int buildTime[1000], cache[1000]; vector adj[1000]; vector innode[1000]; int build(int target){ int& ret = cache[target]; if(ret != -1) return ret; if(inn..
혼내주기
2021. 8. 2. 00:00