传文件用恳请管理不要封

· · 个人记录

#include<bits/stdc++.h>
using namespace std;
struct Edge
{
    int v,w;
};

vector<Edge> g[10001];
queue<int> q;
int a,b,c,d,e,rd[10001],m,t[10001],k[10001];

int main()
{
    cin>>a>>b;
    for(int i=0;i<b;i++)
    {
        cin>>c>>d>>e;
        g[d].push_back({c,e});
        rd[c]++;
    }
    for(int i=1;i<=a;i++)
    {
        if(rd[i]==0)q.push(i);
    } 
    while(!q.empty())
    {
        m=q.front(); q.pop();
        for(int i=0;i<g[m].size();i++)
        {
            int w=g[m][i].w;
            int v=g[m][i].v;
            if(w+t[m]>t[v]){t[v]=w+t[m];
            }
            rd[v]--;
        if(rd[v]==0){   
        q.push(v);
        }
        }

    }
    int rt=0;
    for(int i=0;i<=a;i++)
    {
        rt+=t[i];
    }
    cout<<rt;
    return 0;
}