hdu 2680 dijkstra 使用优先队列优化
来源:互联网 发布:如何看淘宝各行业数据 编辑:程序博客网 时间:2024/04/29 09:05
http://acm.hdu.edu.cn/showproblem.php?pid=2680
处理的时候有个小技巧
#include <iostream>#include <cstdio>#include <cstring>#include <queue>#define INF 100000000using namespace std;int map[1005][1005];int d[1005];int vis[1005];void init(int n){ int i,j; for(i=0;i<=n;i++) { for(j=0;j<=n;j++) map[i][j]=INF; d[i]=INF; } memset(vis,0,sizeof(vis));}struct cmp{ bool operator()(int lhs,int rhs) { return d[lhs]>d[rhs]; }};int main(){ int n,m,s; while(scanf("%d%d%d",&n,&m,&s)!=EOF) { init(n); int i; int a,b,c; for(i=0;i<m;i++) { scanf("%d%d%d",&a,&b,&c); if(c<map[a][b]) map[a][b]=c; } int w; scanf("%d",&w); for(i=0;i<w;i++) { scanf("%d",&a); map[0][a]=0; ///此处小技巧,把kiki看作0起始点到0处,距离为0 } priority_queue<int,vector<int>,cmp> q; d[0]=0; q.push(0); while(!q.empty()) { int t=q.top(); q.pop(); if(vis[t]) continue; vis[t]=1; for(i=0;i<=n;i++) { if(!vis[i]&&d[i]>d[t]+map[t][i]) { d[i]=d[t]+map[t][i]; q.push(i); } } } if(d[s]==INF) printf("-1\n"); else printf("%d\n",d[s]); } return 0;}
- hdu 2680 dijkstra 使用优先队列优化
- 优先队列优化 dijkstra
- Dijkstra(优先队列优化)
- Dijkstra优先队列优化
- hdu 2112 HDU Today 优先队列优化的Dijkstra+map
- hdu 2066最短路 dijkstra 及其优先队列优化
- hdu 1874 畅通工程续 (Dijkstra + 优先队列优化)
- hdu 2066 一个人的旅行 Dijkstra+优先队列优化
- 优先队列优化Dijkstra算法
- dijkstra+优先队列优化 模板
- dijkstra的优先队列优化
- 优先队列优化Dijkstra-hdu2066
- Dijkstra算法优先队列优化
- 优先队列优化Dijkstra算法
- hdu 2112 dijkstra+优先队列
- hdu 1596 dijkstra+优先队列
- PriorityQueue+Dijkstra优先队列优化的Dijkstra
- [最短路]使用优先队列优化的Dijkstra算法
- 手把手教你OPENCV FOR ANDROID之一_android开发环境搭建
- c static关键字理解
- Dalvik虚拟机简介
- 手把手教你OPENCV FOR ANDROID 之二_ android开发环境搭建
- mysql 启动事件
- hdu 2680 dijkstra 使用优先队列优化
- 递归树型查询(父子互逆查询)
- 关于keil中data,idata,xdata,pdata,code的问题
- hdu 1165 Eddy's research II
- ArCGIS9体系结构
- git reset
- 安装程序包的语言不受系统支持
- VC获取文件后缀名
- MYSQL之基本操作