POJ 1949(DAG最長路徑)

2021-06-27 09:19:47 字數 842 閱讀 4376

題目:

所有任務合起來構成乙個dag,因為任務可以並行,所以從無前驅的節點到無後繼的節點的所有任務路徑中,最耗時的那一條就是所需要的總時間,因為這樣的搜尋中已經考慮了乙個任務所有可能的開始時間。

#include #include #include using namespace std;

int n, c[10005] = ;

int f[10005];

vectorch[10005];

int dp(int x)

f[x] += c[x];

return f[x];

}int main()

while(k--)

} //dp

printf("%d\n", dp(0));

} return 0;

}

樹形dp是dfs的方式,實際上由於我們的最終目的是想找到最長路徑,還可以採取類似spfa的思想進行拓撲圖的遍歷

#include #include #include #include #include using namespace std;

int n, c[10005];

int f[10005];

vectorch[10005];

queueq;

bool inq[10005];

int bfs()

} }return res;

}int main()

while(k--)

} //bfs

printf("%d\n", bfs());

} return 0;

}

POJ 3249 記憶化搜尋,,,,DAG最長路

題目大意 給出n個點,m條邊,每個點都提供了相對的點權值,然後給出相連著的邊,問從起點走到終點最大利潤值。起點是入度為0的點,終點是出度為0的點。思路1 spfa求最長路,正向建邊tle,反向建邊4400msac。2 記憶化搜尋,每次都儲存當前點到終點獲得的最大利潤。ac 搜尋 1844ms inc...

DAG最長路(最短路)

dag就是有向無環圖。dag上的最長或者最短路是很重要的一類問題。很多問題都可以轉化為dag上的最長或者最短路徑的問題。dag求最短和最長路的方法一樣。本演算法主要解決2個問題 1 求整個dag中的最長路徑 即不固定起點,也不固定終點 2 固定終點,求dag的最長路徑。dp i 表示從i 號頂點出發...

動態規劃四(DAG最長路)

在圖的有關知識中已經了解了dag就是有向無環圖,其中計算最長路 關鍵路徑 的做法非常複雜,這裡介紹更簡單的方法。求整個dag的最長路徑 即不固定起點和終點 固定終點,求dag的最長路徑。給定乙個有向無環圖,怎樣求解整個圖的所有路徑中權值之和最大的那條。令dp i 表示從i號頂點出發能獲得的最長路徑長...