37分 WA 求条
  • 板块P1807 最长路
  • 楼主imnoob
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/29 12:07
  • 上次更新2024/1/29 14:22:45
查看原帖
37分 WA 求条
487383
imnoob楼主2024/1/29 12:07
#include <iostream>
#include <vector>
#include <queue>
#include <string.h>
#include <algorithm>
using namespace std; 
struct node
{
	int t, v;
};
int n, m;
int ind[1510], outd[1510], f[1510];
vector <node> e[1510];
queue <int> q;
int main()
{
	memset(f, -2000000000, sizeof(f));
	memset(ind, 0, sizeof(ind));
	memset(outd, 0, sizeof(outd));
	cin >> n >> m;
	for(int i = 1, u, v, w; i <= m; ++i)
	{
		cin >> u >> v >> w;
		++ind[v];
		++outd[u];
		e[u].push_back((node){v, w});
	}
	q.push(1);
	while(!q.empty())
	{
		int fro = q.front();
		q.pop();
		for(int i = 0; i < outd[fro]; ++i)
		{
			int p = e[fro][i].t, l = e[fro][i].v;
			f[p] = max(f[fro] + l, f[p]);
			--ind[p];
			if(!ind[p])
			{
				q.push(p);
			}
		}
	}
	cout << f[n];
}

记录

2024/1/29 12:07
加载中...