蒟蒻82分,求调
查看原帖
蒟蒻82分,求调
1087337
Evan20101206楼主2025/7/22 11:11
#include <bits/stdc++.h>
#define int long long
using namespace std;
struct stu
{
	int v , w;
};
vector<stu> G[2010];
queue<int> q;
int n , m , deg[2010] , a[2010];
bool toposort()
{
	memset(a , -0x3f , sizeof(a));
	a[1] = 0;
	for(int i = 1; i <= n; i++)
	{
		if(!deg[i]) q.push(i);
	}
	int cnt = 0;
	while(!q.empty())
	{
		int u = q.front();
		q.pop();
		cnt ++;
		for(stu i : G[u])
		{
			int v = i.v , w = i.w;
			a[v] = max(a[v] , a[u] + w);
			if(-- deg[v] == 0) q.push(v);
		}
	}
	return n == cnt;
}
signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> n >> m;
	for(int i = 1; i <= m; i++)
	{
		int u , v , w;
		cin >> u >> v >> w;
		G[u].push_back({v , w});
		deg[v] ++;
	}
	if(!toposort()) cout << -1 << endl;
	else cout << a[n] << endl;
	return 0;
}
2025/7/22 11:11
加载中...