풀이
간단한 다이나믹으로 풀어도 되고
위상정렬스럽게 풀어도 된다
코드
#include <cstdio>
#include <algorithm>
using namespace std;
int n, res, dp[10001];
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
int c, m, x;
scanf("%d %d", &c, &m);
for (int j = 0; j < m; j++) {
scanf("%d", &x);
dp[i] = max(dp[i], dp[x]);
}
res = max(res, dp[i] += c);
}
printf("%d", res);
return 0;
}
아무말
백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이