DAG最长路径

Posted 565261641-fzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DAG最长路径相关的知识,希望对你有一定的参考价值。

1、DAG最长路径(不记录路径)

int dfs1(int s) {
    if(dis[s] > 0)return dis[s];
    for(int i = 0; i < G[s].size(); ++i) {
        int to = G[s][i];
        dis[s] = max(dis[s], dfs1(to) + w[s][to]);
    }
    return dis[s];
}

2、DAG最长路径(记录路径)

int dfs1(int s) {
    if(dis[s] > 0)return dis[s];
    for(int i = 0; i < G[s].size(); ++i) {
        int to = G[s][i];
        int tmp = dfs1(to) + w[s][to];
        if(dis[s] < tmp){
            dis[s] = tmp;
            next[s] = to;
        }
    }
    return dis[s];
}

 

以上是关于DAG最长路径的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp DAG最长路径

构造一个将两个 DAG 作为输入并返回在两者中找到的最长路径的算法

[POJ3249]Test for Job [拓扑排序+DAG上的最长路径]

DAG的运用:拓扑排序(AOV),关键路径(AOE)与dp的关系

bzoj 2044 三维导弹拦截——DAG最小路径覆盖(二分图)

The Tower of Babylon UVA - 437 DAG上的动态规划