64分WA求助
查看原帖
64分WA求助
890257
CarlosProvo楼主2024/7/10 09:52
#include<bits/stdc++.h>
using namespace std;
struct node
{
	int tv,w;
};
vector<node> e[1501];
queue<int> q;
int n,m,dep[1501],cnt;
long long dp[1501];
const long long INF=(-1)*(1e9+7);
bool topsort()
{
	while(q.size())
	{
		int u=q.front();
		q.pop();
		cnt++;
		for(auto v:e[u])
		{
			if(--dep[v.tv]==0)q.push(v.tv);
			dp[v.tv]=max(dp[v.tv],dp[u]+v.w);
		}
	}
	if(cnt!=n)return false;
	else return true;
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int u,v,w;
		cin>>u>>v>>w;
		e[u].push_back({v,w});
		dp[v]=INF;
		dep[v]++;
	}
	if(dep[n]==0)
	{
		cout<<-1;
		return 0;
	}
	for(int i=1;i<=n;i++)if(dep[i]==0)q.push(i);
	if(topsort())cout<<dp[n];
	else cout<<-1;
	return 0;
}
2024/7/10 09:52
加载中...