Dijkstra算法模板
2021/7/19 20:35:06
本文主要是介绍Dijkstra算法模板,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include<bits/stdc++.h> using namespace std; priority_queue<pair<int,int> >q; int n,m,dis[20005],cnt,head[20005]; bool v[20005]; struct hhh { int to,nxt,w; }a[20005]; void add(int x,int y) { a[++cnt].nxt=head[x],a[cnt].to=y,head[x]=cnt; } void dj(int s) { memset(dis,0x3f,sizeof(dis)); dis[s]=0; q.push(make_pair(0,s)); while(q.size()) { int x=q.top().second; q.pop(); if(v[x]) continue; v[x]=1; for(int i=head[x];i;i=a[i].nxt) { int y=a[i].to; if(dis[y]>dis[x]+1) { dis[y]=dis[x]+1; q.push(make_pair(-dis[y],y)); } } } return ; } int main() { scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); add(x,y); add(y,x); } dj(1); if(dis[n]==0x3f3f3f3f) { printf("-1"); return 0; } printf("%d",dis[n]); return 0; }
这篇关于Dijkstra算法模板的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27数据结构与算法面试题详解及练习
- 2024-12-27网络请求面试题详解与实战
- 2024-12-27数据结构和算法面试真题详解与实战教程
- 2024-12-27网络请求面试真题解析与实战教程
- 2024-12-27数据结构和算法大厂面试真题详解与实战指南
- 2024-12-27TS大厂面试真题解析与应对策略
- 2024-12-27TS大厂面试真题详解与解析
- 2024-12-27网站安全入门:如何识别和修复漏洞
- 2024-12-27SQL注入基础教程
- 2024-12-27初学者指南:理解和修复跨域漏洞