40stp ,多处RE请指教
查看原帖
40stp ,多处RE请指教
1168588
FASTergood楼主2024/7/11 11:55

40stp,RE请指教

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 100010;
int g[105][N], dist[N];
bool st[N];
int n, m,w;
int dijs(int k)
{
	memset(st,false, sizeof(st));
	memset(dist, 0x3f, sizeof(dist));
	dist[w] = 0;
	for (int i = 1;i <= n;i++)
	{
		int t = -1;
		for (int j = 1;j <= n;j++)
		{
			if (!st[j] && (dist[j] < dist[t] || t == -1))
				t = j;
		}
		for (int j = 1;j <= n;j++)
		{
			dist[j] = min(dist[j], dist[t] + g[t][j]);

			st[t] = true;
		}



	}
	if (dist[k] == 0x3f3f3f3f)return 2e31-1;
	else return dist[k];
}
int main()
{
	cin >> n >> m>>w;
	memset(g, 0x3f, sizeof(g));
	for (int i = 1;i <= m;i++)
	{
		int a, b, c;
		cin >> a >> b >> c;
		g[a][b] = min(g[a][b], c);
	}
	for(int i=1;i<=n;i++)
	cout << dijs(i) <<" ";

	return 0;
}
2024/7/11 11:55
加载中...