关于spfa
  • 板块学术版
  • 楼主zhuoheng
  • 当前回复17
  • 已保存回复18
  • 发布时间2024/9/5 20:10
  • 上次更新2024/9/5 22:38:26
查看原帖
关于spfa
1023698
zhuoheng楼主2024/9/5 20:10
void spfa(int start){
	memset(dis, 0x3f, sizeof(dis));
	priority_queue<PII, vector<PII>, greater<PII> >q;
	dis[start] = 0;
	q.push(make_pair(0, start));
	for (int T = 0; T < n; ++T){
		PII now = q.top();
		q.pop();
		int id = now.second;
		if (dis[id] != now.first){
			continue;	
		}
		for (int i = 0; i < G[id].size(); ++i){
			int v = G[id][i].v;
			int w = G[id][i].w;
			if (dis[v] > dis[id] + w){
				dis[v] = dis[id] + w;
				q.push(make_pair(dis[v], v));
			}	
		}
	}
}

这个写法是否有其正确性;
请不要回答spfa死了

2024/9/5 20:10
加载中...