题目链接: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);
}
}
本文解析了一道已拓扑排序的动态规划问题,通过实例代码详细介绍了如何求解最长路径问题,适用于算法初学者。
145

被折叠的 条评论
为什么被折叠?



