28分dijkstra挂掉!!!求大犇帮助!!
  • 板块P1807 最长路
  • 楼主zzCX_df
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/7/23 16:44
  • 上次更新2024/7/23 18:14:07
查看原帖
28分dijkstra挂掉!!!求大犇帮助!!
1054952
zzCX_df楼主2024/7/23 16:44
#include <bits/stdc++.h>

using namespace std;

int n, m, s, t;
long long dist[2501];
bool b[2501];
vector<pair<int, int> > Q[2501];
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q;

inline void bfs() {
	memset(dist, 127, sizeof(dist));
	dist[1] = 0;
	q.push(make_pair(0, 1));
	while (!q.empty()) {
		pair<int, int> x;
		x = q.top();
		q.pop();
		if (b[x.second]) 
			continue;
		b[x.second] = true;
		for (int i = 0; i < Q[x.second].size(); i++) {
			int v = Q[x.second][i].second;
			int w = Q[x.second][i].first;
			if (dist[v] > w + dist[x.second] + 0LL) 
				dist[v] = w + dist[x.second];
			q.push(make_pair(dist[v], v));
		}
	}
	return;
}

int main() {
	scanf("%d%d", &n, &m);
	for (; m--; ) {
		int x, y, w;
		scanf("%d%d%d", &x, &y, &w);
		Q[x].push_back(make_pair(-w, y));
	}
	bfs();
	printf("%lld ", -dist[n]);
	return 0;
}

2024/7/23 16:44
加载中...