奇奇怪怪的两个MLE
查看原帖
奇奇怪怪的两个MLE
255540
Her_Lingxiao楼主2020/9/13 15:51

原因没找出来,有神犇帮本蒟蒻个忙吗

#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
const int Maxn = 5e4;
struct Edge
{
	int u, v, w;
};
vector<Edge> e[Maxn];//存边 
queue<long long> que;
long long Road[Maxn];
int main()
{
	int n, m;
	scanf("%d %d", &n, &m);
	Road[n] = -1;
	for(int i = 1; i <= m; i++)
	{
		int from, to, len;
		scanf("%d %d %d", &from, &to, &len);
		Edge now;
		now.u = from;
		now.v = to;
		now.w = len;
		e[from].push_back(now);
		
	}
	que.push(1);//入队 
	while(!que.empty())//队列非空 
	{
		for(int i = 0; i < e[que.front()].size(); i++)//遍历 
		{
			que.push(e[que.front()][i].v);//入队 
			Road[e[que.front()][i].v] = max(Road[e[que.front()][i].v], Road[e[que.front()][i].u] + e[que.front()][i].w);//改变a->b的最大值 
		}
		que.pop();//出队 
	}
	printf("%lld\n", Road[n]);
	return 0;
}

(话说邻接表挂空间是不是有点过分了)

2020/9/13 15:51
加载中...