RE求助!SPFA
查看原帖
RE求助!SPFA
371323
zcj070417楼主2021/7/9 15:02

样例和第一个测试点数据在本地都能过,为什么提交上去就全部RE啊啊……

#include<bits/stdc++.h>
using namespace std;

int n,m,s,dis[10007];
bool inq[10007]={0};

struct Node{
	int u,v,w;
};

vector <Node> g[10007];

int spfa(int start){
	queue <int> q;
	for(int i=0;i<10007;i++){
		dis[i]=1000086;
	}
	dis[start]=0;
	inq[start]=1;
	
	q.push(start);
	while(!q.empty()){
		int fq=q.front();
		q.pop();
		inq[fq]=0;
		
		for(int i=0;i<g[fq].size();i++){
			Node e=g[fq][i];
			if(dis[e.v]>dis[fq]+e.w){
				dis[e.v]=dis[fq]+e.w;
				if(!inq[e.v]){
					q.push(e.v);
					inq[e.v]=1;
				}
			} 
		}
	}
}

void AddE(int x,int y,int z){
	Node tmp;
	tmp.u=x;
	tmp.v=y;
	tmp.w=z;
	g[x].push_back(tmp);
}


int main(){
	int zcj=2147483647;
	cin>>n>>m>>s;
	for(int i=1;i<=m;i++){
		int u,v,w;
		cin>>u>>v>>w;
		AddE(u,v,w);
	}
	spfa(s);
	
	for(int i=1;i<=n;i++){
		if(dis[i]<1000086){
			cout<<dis[i]<<" ";
		}else{
			cout<<zcj;
		} 
	}
	
	
	return 0;
}
2021/7/9 15:02
加载中...