求调,全部输出0
查看原帖
求调,全部输出0
664236
Pursuewind楼主2023/6/2 21:23

代码全输出0了。。。

#include <bits/stdc++.h>
using namespace std;
const int N = 1e4 + 5;
int n, m, s;
int dis[N];
bool vis[N];
struct edge
{
	int to, w;
};
vector <edge> G[N];
struct node
{
	int dis, id;
	bool operator < (const node &a) const
	{
		return a.dis < dis;
	}
};
priority_queue <node> q;
void dij()
{
	q.push({0, s});
	for (int i = 1; i <= n; i ++) dis[i] = 2147483647;
	while (!q.empty())
	{
		node top = q.top();
		int now = top.id;
		int w = top.dis; 
		q.pop();
		if (vis[now]) continue;
		vis[now] = 1;
		for (int i = 0; i < G[now].size(); i ++)
		{
			int go = G[now][i].to;
			if (dis[go] > dis[now] + w)
			{
				dis[go] = dis[now] + w;
				if (!vis[go]) q.push({dis[go], go});
			}
		}
	}
}
int main()
{
	cin >> n >> m >> s;
	while (m --)
	{
		int u, v, w;
		scanf("%d%d%d", &u, &v, &w);
		G[u].push_back({v, w});
	}
	dij();
	for (int i = 1; i <= n; i ++) cout << dis[i] << " ";
	return 0;
}

求调。

2023/6/2 21:23
加载中...