样例过了,但是听取WA声一片
查看原帖
样例过了,但是听取WA声一片
1300710
yuxusheng楼主2024/5/20 18:40
#include <bits/stdc++.h>
using namespace std;
struct node{
	int to, w;
};
vector < node > g[100005];
int dis[100005]; 
bool vis[100005];
int n, m, sx;
int main()
{
	cin >> n >> m >> sx;
	for (int i = 1; i <= m; i++)
	{
		int u, v, w;
		cin >> u >> v >> w;
		g[u].push_back({v, w});
		g[v].push_back({u, w});
	}
	memset(dis, 0x3f3f3f, sizeof dis);
	dis[sx] = 0;
	for (int i = 1; i < n; i++)
	{
		int x = 0;
		for (int j = 1; j <= n; j++)
		{
			if (!vis[j] && dis[j] < dis[x])
				x = j;
		}
		vis[x] = 1;
		for (auto e : g[x])
		{
			if (!vis[e.to]) dis[e.to] = min(dis[e.to], dis[x] + e.w);
		}
	}
	for (int i = 1; i <= n; i++)
		cout << dis[i] << " ";
	return 0;
}
2024/5/20 18:40
加载中...