题目链接:http://poj.org/problem?id=1949
给出的数据已经是拓扑排好序的,很水的动态规划,就是用最长路径老是WA,不明白为啥。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int dis[10005];
int main()
{
int n;
while(~scanf("%d",&n))
{
memset(dis,0,sizeof(dis));
int res = 0,v,t,p;
for(int i = 1;i <= n;++i)
{
scanf("%d%d",&v,&t);
dis[i] = 0;
for(int j = 0;j < t;++j)
{
scanf("%d",&p);
dis[i] = max(dis[i],dis[p]);
}
dis[i] += v;
res = max(dis[i],res);
}
printf("%d\n",res);
}
}