神奇的写法
  • 板块灌水区
  • 楼主xlaser
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/9 19:24
  • 上次更新2024/8/9 20:25:59
查看原帖
神奇的写法
629342
xlaser楼主2024/8/9 19:24

dijkstra忘记写vis了,结果发现几乎能过所有最短路的题,还能当spfa用。。。

代码:

void dijkstra(int s)
{
	for(int i=1;i<=n;i++)
	{
		dis[i]=1e9;
	}
	priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> q;
	dis[s]=0;
	q.push({0,s});
	while(!q.empty())
	{
		auto tmp=q.top();
		q.pop();
		int jl=tmp.first;
		int mini=tmp.second;
		for(int i=0;i<edge[mini].size();i++)
		{
			int v=edge[mini][i].v;
			int w=edge[mini][i].w;
			if(dis[v]>jl+w)
			{
				dis[v]=jl+w;
				q.push({jl+w,v});
			}
		}
	}
}
2024/8/9 19:24
加载中...