dijstra+优先队列优化
来源:互联网 发布:tv是哪个国家的域名 编辑:程序博客网 时间:2024/03/29 18:52
代码:
#include<iostream>#include<string.h>#include<cstdio>#include<string>#include<limits.h>#include<queue>#define N 20005using namespace std;typedef struct node{int num;int len;int Next;}Node;int res,head[105],dis[105],n;Node s[N];typedef pair<int,int> pii;void init(){memset(head,-1,sizeof(head));res=0;}void add(int a,int b,int c){s[res].num=b;s[res].len=c;s[res].Next=head[a];head[a]=res++;}void dijstra(){for(int i=1;i<=n;++i) dis[i]=(i==1)?0:INT_MAX;priority_queue<pii,vector<pii>,greater<pii> >Q;Q.push(make_pair(dis[1],1));while(!Q.empty()){pii u=Q.top();Q.pop();int x=u.second;if(u.first!=dis[x]) continue;for(int i=head[x];i!=-1;i=s[i].Next)if(dis[s[i].num]>dis[x]+s[i].len) {dis[s[i].num]=dis[x]+s[i].len;Q.push(make_pair(dis[s[i].num],s[i].num)); }}}int main(){int m;while(~scanf("%d%d",&n,&m)){init();if(!n&&!m) break;for(int i=0;i!=m;++i){int a,b,c;scanf("%d%d%d",&a,&b,&c);add(a,b,c);add(b,a,c);}dijstra();printf("%d\n",dis[n]);}return 0;}
- dijstra+优先队列优化
- UVA 11374 Airport Express(优先队列优化dijstra + 枚举)
- uva 10537 Toll! Revisited(优先队列优化dijstra及变形)
- hdu 1142 dijstra+优先队列优化+树状dp优化(简单dfs)
- Dijstra算法---普通版、优先队列优化版、堆优化版
- 基于优先队列PriorityQueue的Dijstra算法之Java实现
- (Dijstra + 优先队列,Floyd,BellmanFord,SPFA)HDU-1874
- 优先队列优化 dijkstra
- Dijkstra(优先队列优化)
- Dijkstra优先队列优化
- 优先队列优化prim算法
- 优先队列优化Dijkstra算法
- 优先队列优化的dijsktra
- la4327 优先队列优化dp
- dijkstra+优先队列优化 模板
- Dijkstar及其优先队列优化
- dijkstra的优先队列优化
- 优先队列优化Dijkstra-hdu2066
- VIM 一些技巧
- 按back键直接退出Activity,不关闭软键盘
- android 新建的项目背景是白的,俺要给它改成黑色的
- java的三十个基本原则
- linux下非阻塞网络编程-select
- dijstra+优先队列优化
- new Instance()方法和new 关键字的区别
- 合并txt批处理bat
- linux下ssh/scp使用公钥认证方式登陆
- 打字游戏(摘)
- 贴图的时候
- 昵称
- String类的split方法详解
- Android 开机启动应用程序