SPFA算法第一关TLE求调
查看原帖
SPFA算法第一关TLE求调
1103294
yuanshuu楼主2024/8/8 17:06
#include <bits/stdc++.h>
using namespace std;
int head[100004];
struct node{
	int to;
	int w;
	int nxt;
} edge[200005];
int n,m,s;
int d[100004];
bool visit[100004];
queue <int> que;

int main (){
	memset(d,127,sizeof(d));
	cin>>n>>m>>s;
	d[s]=0;
	for(int i=1;i<=m;i++){
		int u,v,w;
		cin>>u>>v>>w;
		edge[i].to=v;
		edge[i].w=w;
		edge[i].nxt=head[u];
		head[u]=i;
	}
	for(int u=1;u<=n;u++){
		que.push(u);
		visit[u]=true;
	}
	while(!que.empty()){
		int u=que.front();
		que.pop();
		visit[u]=false;	
		for(int i=head[u];i;i=edge[i].nxt){
			int v=edge[i].to;
			int w=edge[i].w;
            if (d[u] + w < d[v]) {
                d[v] = d[u] + w;
                if (!visit[v]) {
                    que.push(v);
                    visit[v] = true;
                }
            }
		}	
	}
	
	for(int i=1;i<=n;i++){
		cout<<d[i]<<" ";
	}
	return 0;
}
```cpp
谢谢大家
2024/8/8 17:06
加载中...