poj2387(堆优化dijiskla模版,通过pair写的)
来源:互联网 发布:腾讯dns优化器手机版 编辑:程序博客网 时间:2024/06/11 10:00
pair真心好写,就是可扩展性不强
#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#include<cstdlib>#include<queue>#define MK(x,y) make_pair(x,y)#define pii pair<int,int>#define inf 0x3f3f3f3f#define se second#define fi first using namespace std;struct aa{int y,z,pre;}edge[1000009];int n,m,tot,head[100009],dis[100009];bool b[100009];void addedge(int x,int y,int z){edge[++tot].y=y;edge[tot].z=z;edge[tot].pre=head[x];head[x]=tot;}int main(){scanf("%d%d",&m,&n);int x,y,z;for (int i=1;i<=m;i++) scanf("%d%d%d",&x,&y,&z),addedge(x,y,z),addedge(y,x,z);priority_queue<pii,vector<pii>,greater<pii> > heap;memset(dis,inf,sizeof(dis));dis[1]=0;memset(b,false,sizeof(b));heap.push(MK(dis[1],1));pii t;while (!heap.empty()){t=heap.top();heap.pop();if (b[t.se]) continue;b[t.se]=true;for (int i=head[t.se];i;i=edge[i].pre)if (!b[edge[i].y]&&dis[edge[i].y]>dis[t.se]+edge[i].z){dis[edge[i].y]=dis[t.se]+edge[i].z;heap.push(MK(dis[edge[i].y],edge[i].y));}}printf("%d",dis[n]);return 0;}
0 0
- poj2387(堆优化dijiskla模版,通过pair写的)
- dijkstra算法的应用(poj2387)+堆优化【还没学C艹很尴尬,不理解的先不写了,未完,待续...】
- 堆优化Dijkstra模版
- 堆优化Dijkstra 模版
- 堆排序(模版)
- poj2387(最简单的最短路)
- vector持有pair模版
- 堆模版
- POJ2387
- poj2387
- poj2387
- poj2387
- poj2387
- POJ2387
- poj2387
- poj2387
- delphi7写的个人笔记本(模版功能已经实现)
- 堆排序(写的很好)
- Angular__Module
- 设置布局不随输入框键盘出现而上移
- 未检测到Java SDK 环境-Java环境变量设置-Java开发环境搭建
- 用AFNetworking3.0封装网络请求
- 表达式求值(栈)
- poj2387(堆优化dijiskla模版,通过pair写的)
- 《Qt》part 4 Qt5.5.0窗口之间传值(二)
- 二叉查找树Java实现代码
- Java - 数据库(mysql - 4)
- 条码识别
- Google物联网操作系统协同框架Weave深度解析
- css3 为什么要加 -moz-box-shadow -webkit-box-shadow -o-box-shadow,直接用box-shadow不是都能识别吗?
- 更改kvm虚拟机磁盘大小
- ERROR 6: GEOS support not enabled.