90分,#3
查看原帖
90分,#3
791222
lby_commandBlock楼主2024/7/16 15:04

Wrong Answer.wrong answer On line 1 column 9, read 1, expected 2.

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;

const int N = 1e5 + 9;

int n, m, s, a, b, c;

struct edge {
	int v, w;
};

vector<edge> e[N];
int d[N];
bool vis[N];

void dijkstra(int s) {
	memset(d, 0x3f, sizeof(d));
	d[s] = 0;
	priority_queue<pair<int, int>> q;
	q.push({0, s});
	while (!q.empty()) {
		pair<int, int>t = q.top();
		q.pop();
		int u = t.second;
		if (vis[u])
			continue;
		vis[u] = true;
		for (auto ed : e[u]) {
			int v = ed.v, w = ed.w;
			if (d[v] > d[u] + w) {
				d[v] = d[u] + w;
				q.push({-d[v], v});
			}
		}
	}
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
#ifdef BIG_BANANA_A_BIG_BANANA_YOUR_FEEL_VERY_WONDERFUL
	freopen(".in", "r", stdin);
	freopen(".out", "w", stdout);
#endif
	cin >> n >> m >> s;
	for (int i = 0; i < m; i++) {
		cin >> a >> b >> c;
		e[a].push_back({b, c});
	}
	dijkstra(s);
	for (int i = 1; i <= n; i++)
		cout << d[i] << ' ';
	return 0;
}
2024/7/16 15:04
加载中...