dijkastra 基于优先队列
来源:互联网 发布:数据库分组统计 编辑:程序博客网 时间:2024/06/04 21:08
#include<cstdio>#include<iostream>#include<vector>#include<map>#include<set>#include<queue>#include<deque>#include<cstring>#include<string>#include<algorithm>using namespace std;struct Pair{int x,y;Pair(){}Pair(int one,int two){x=one,y=two;}bool operator <(const Pair& other) const{if(y>other.y||(y==other.y&&x<other.x)) return true;return false;}};int n,m;vector<Pair> vec;vector<int> a[100];void dijkstra(){priority_queue<Pair> q;q.push(Pair(1,0));bool use[100];memset(use,0,sizeof(use));int dis[100];memset(dis,127,sizeof(dis));dis[1]=0;while(!q.empty()){Pair s=q.top();q.pop();use[s.x]=true;for(int i=0;i<a[s.x].size();i++){Pair k=vec[a[s.x][i]];if(!use[k.x]&&k.y+s.y<dis[k.x]){dis[k.x]=k.y+s.y;q.push(Pair(k.x,dis[k.x]));}}}printf("%d\n",dis[n]);}int main(){scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int x,y,z;scanf("%d%d%d",&x,&y,&z);vec.push_back(Pair(y,z));a[x].push_back(vec.size()-1);}dijkstra();return 0;}
阅读全文
2 0
- dijkastra 基于优先队列
- 基于堆的优先队列
- 基于堆的优先队列
- 基于堆得优先队列
- 基于堆的优先队列
- 基于堆的优先队列
- 基于堆的优先队列实现
- POJ 3635 基于优先队列的BFS
- 基于堆的优先队列的实现
- 基于最大堆实现最大优先队列
- 基于二叉树的优先队列
- 基于数组的最大优先队列
- 简单优先队列实现-基于最小堆
- 《算法》基于堆的优先队列
- 排序算法——优先队列(基于堆得优先队列)
- 最小生成树之Prime算法(基于优先队列)
- 排序笔记_7(基于堆得优先队列)
- C#实现优先队列 基于二叉堆 附使用案例
- 看图说话之二叉排序树
- ch01 OpenCV图像坐标系
- stratum协议原理
- ld: library not found for -lXXXXX 的解决方法
- 图片标注工具 LabelImg 使用教程
- dijkastra 基于优先队列
- 超好用的医学图像处理软件Convert3D Medical Image Processing Tool
- 错误码:events.js:141 throw er; // Unhandled ‘error’ event—解决办法
- 网易云课堂的不良体验总结
- 【POI】Apache POI单元格/Cells(七)
- Zookeeper集群安装之虚拟机准备
- Developing Transactional Microservices Using Aggregates, Event Sourcing and CQRS
- 4.2 TCP 性能特点
- 写给人类的机器学习 三、无监督学习