int DP(int i)
{
if(dp[i]>0)return dp[i];
FOR(v,0,n-1)
{
if(G[v][i]!=oo){
int tmp=DP(v)+G[v][i];
if(dp[i]<tmp){
dp[i]=tmp;
choice[i]=j;
}
}
}
return dp[i];
}
printPath(int i)
{
printf("%d",i);
while(choice[i]!=-1){
i=choice[i];
printf("->%d",i);
}
}
DAG
最新推荐文章于 2024-08-23 09:51:03 发布