最短路题目(持续更新)
\(1.\) \(Silver\) \(Cow\) \(Party\) (需要该篇博文的阅读密码)
非负权单源最短路径
void dijkstra(int s)
{
memset(dis,0x3f,sizeof(dis));
memset(vis,0,sizeof(vis));
priority_queue<pair<int,int> > q;
dis[s]=0;
q.push(make_pair(0,s));
while(!q.empty())
{
int x=q.top().second;
q.pop();
if(vis[x])
continue;
vis[x]=1;
for(register int i=head[x];i;i=e[i].nxt)
{
int y=e[i].ver,w=e[i].w;
if(dis[y]>dis[x]+w)
{
dis[y]=dis[x]+w;
q.push(make_pair(-dis[y],y));
}
}
}
}