社区讨论

SPFA为啥全RE

P4779【模板】单源最短路径(标准版)参与者 3已保存回复 15

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
14 条
当前快照
1 份
快照标识符
@lrw0mpd9
此快照首次捕获于
2024/01/27 19:55
2 年前
此快照最后确认于
2024/01/27 21:45
2 年前
查看原帖
样例过了,但是全RE(悲 代码:```cpp

include <stdio.h> //Dijkstra

include <string.h>

include

include

using namespace std; int n,m,s,num=0,dis[11451]={0}; int head[11451]={0}; bool vis[11451]={0}; struct Edge{ int from; int to; int Next; int Distance; }edge[21451]; void AddEdge(int From,int To,int Dis){ edge[++num].Next=head[From]; head[From]=num; edge[num].from=From; edge[num].to=To; edge[num].Distance=Dis; return; } int main(){
CPP
scanf("%d%d%d",&n,&m,&s);
for(int i=0;i<m;i++){
	int u,v,d;
	scanf("%d%d%d",&u,&v,&d);
	AddEdge(u,v,d);
}
memset(dis,0x3f,sizeof(dis));
queue<int>qu;
qu.push(1);
dis[1]=0;
vis[1]=1;
while(!qu.empty()){
	int Now=qu.front();
	qu.pop();vis[Now]=0;
	for(int i=head[Now];i;i=edge[i].Next){
		if(dis[edge[i].to]>dis[Now]+edge[i].Distance){
			dis[edge[i].to]=dis[Now]+edge[i].Distance;
			if(!vis[edge[i].to]){
				vis[edge[i].to]=1;
				qu.push(edge[i].to);
			}
		}
	}
}
for(int i=1;i<=n;i++){
	printf("%d ",dis[i]);
}
return 0;
}
CPP

回复

15 条回复,欢迎继续交流。

正在加载回复...