Top_Sort+Floyd实现关键路径

Posted boruto

tags:

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

Top_Sort+Floyd实现关键路径

#include<iostream>
using namespace std;
int n,m;
int g[5000][5000];
int in[5000];
int top[5000];
int d[5000];
void top_sort()
{
    for(int i=1;i<=n;i++)
    {
        int k=1;
        while(k<=n&&in[k]!=0)k++;
        in[k]=0x7fffffff;
        top[i]=k;
        for(int o=1;o<=n;o++)if(g[k][o]!=0)in[o]--;
    }
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        int a,b,c;
        cin>>a>>b>>c;
        g[a][b]=c;
        in[b]++;//b的入度++ 
    }
    top_sort();//拓扑排序 
    for(int i=2;i<=n;i++)
        for(int o=1;o<=i-1;o++)
            if(g[top[o]][top[i]]+d[top[o]]>d[top[i]])
                d[top[i]]=g[top[o]][top[i]]+d[top[o]];
    cout<<d[top[n]];
}

 


 

以上是关于Top_Sort+Floyd实现关键路径的主要内容,如果未能解决你的问题,请参考以下文章

Floyd-Warshall算法正确性证明

Codeforces1204C. Anna, Svyatoslav and Maps (贪心 + Floyd)

C++ 实现带权有向图的每对顶点之间的最短路径Floyd算法(完整代码)

了解极小极大/极大极小路径 (Floyd-Warshall)

2021.11.14数据结构实验课作业——图的应用(最小生成树和最短路)

图论中的重要算法(Dijstra,Bellman-Ford,Floyd,Ford-Fulkerson,匈牙利算法)的详细解读及实现