HDU 2112 迪杰斯特拉最短路算法
来源:互联网 发布:药可以在淘宝上买吗 编辑:程序博客网 时间:2024/05/21 21:40
题目 HDU 2112
迪杰斯特拉最短路 实际上就是优先队列的广搜,每次提取队列中距离最小的进行搜索
AC代码如下,用了 map set 处理字符串很方便
#include<iostream>#include<string>#include<set>#include<map>#include<queue>#include<vector>#include<cstdio>using namespace std;const int maxn = 166;int d[maxn];vector< pair<int,int> > v[maxn];void init(){ for(int i = 0;i < maxn;++i){ v[i].clear(); d[i] = 1 << 30; }}int main(){ int n; while(scanf("%d",&n) != EOF){ if(n == -1) break; init(); set<string> S; map<string,int> Map; string str,str0;int ssize = 0; cin >> str;S.insert(str);if(S.size() > ssize) Map[str] = ssize ++; cin >> str0;S.insert(str0);if(S.size() > ssize) Map[str0] = ssize ++; string str1,str2;int t; for(int i = 0;i < n;++i){ cin >> str1 >> str2 >> t; S.insert(str1);if(S.size() > ssize) Map[str1] = ssize ++; S.insert(str2);if(S.size() > ssize) Map[str2] = ssize ++; int a = Map[str1]; int b = Map[str2]; v[a].push_back(make_pair(b,t)); v[b].push_back(make_pair(a,t)); } priority_queue< pair<int,int> > Q; int st = Map[str]; d[st] = 0;Q.push(make_pair(-d[st],st)); while(!Q.empty()){ int now = Q.top().second;Q.pop(); for(int i = 0;i < v[now].size();++i){ int u = v[now][i].first; if(d[u] > d[now]+v[now][i].second){ d[u] = d[now]+v[now][i].second; Q.push(make_pair(-d[u],u)); } } } int ed = Map[str0]; if(d[ed] == 1 << 30) printf("%d\n",-1); else printf("%d\n",d[ed]); } return 0;}
1 0
- HDU 2112 迪杰斯特拉最短路算法
- hdu 2112 HDU Today 最短路(Dijkstra算法)
- HDU 2112 HDU Today 字典树+最短路dijkstra算法
- HDU 2112 HDU Today(最短路 SPFA Floyd-Warshall算法)
- 单源最短路算法HDU 2544 ( 最短路 )
- HDOJ 2112 HDU Today(最短路,dijkstra算法)
- HDU 2112 HDU Today【最短路+map容器,spfa算法+Dijkstra算法】
- hdu 2112 (最短路)
- HDU 2112 最短路
- HDU 2544 最短路(各种最短路算法的实现)
- HDU-2544-最短路-单源最短路+Dijkstra算法
- HDU 2544 最短路(各种最短路算法的实现)
- hdu 2544 最短路(最短路算法之Dijkstra)
- 【最短路Dijkstra算法】hdu 2851
- hdu 2544 最短路 Dijkstra算法
- hdu 2544最短路 Floyd算法
- HDOJ/HDU 2544 最短路---dijkstra算法
- hdu 2544 最短路 (Bellman_Ford算法)
- 密码学常见基本概念-随机数,伪随机数产生器
- 外观模式
- JS的this、__proto__ 和. prototype 、constructor
- C# WinForm开发系列 - GDI+
- 【3-1-27】指针左值指针与整数指针空指针以及指向为空的指针
- HDU 2112 迪杰斯特拉最短路算法
- 找到一份比较全面的freemarker语法总结
- ubuntu 使用摸索(持续更新)
- Https验证证书
- Vc控件用法总结之List Control
- Android 如何让EditText 失去焦点从而不弹出软键盘
- iOS UITextView详解
- 从C++到java(二)
- 蓝鸥iOS从零基础到精通就业-C语言入门 15函数结构体练习