我这个spfa为什么会RE
  • 板块灌水区
  • 楼主Martlet
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/1/17 15:52
  • 上次更新2023/10/24 03:50:40
查看原帖
我这个spfa为什么会RE
543717
Martlet楼主2023/1/17 15:52

题目

#include<bits/stdc++.h>
using namespace std;
struct edge{
    long long v,w;
}; 
long long n,m,s;
vector<edge> g[110001];
long long dis[1001001],cnt[1001001],inq[1001001];
bool spfa(int s){
	memset(dis,0x3f,sizeof(dis));
	queue<int> que;
	que.push(s);
	inq[s] = 1;
	dis[s] = 0;
	while(!que.empty()){
		int u = que.front();
		que.pop();
		inq[u] = 0; 
		for(int i = 0;i < g[u].size();i++){
			int v = g[u][i].v, w = g[u][i].w;
			if(dis[u]+w< dis[v]){
				dis[v] = dis[u]+w;
				if(!inq[v]){
					inq[v] = 1;
					que.push(v);
				}
			}
		}
	}
}
int main(){
	cin>>n>>m>>s;
	for(int i = 1;i <= m;i++){
		int u,v,w;
		cin>>u>>v>>w;
		g[u].push_back(edge{v,w});
	}
	spfa(s);
	for(int i = 1;i <= n;i++){
		cout<<dis[i]<<" ";
	}
} 
2023/1/17 15:52
加载中...