HDU - 2112 HDU Today Dijkstra
注意:
1、去重边
2、终点和起点一样,应当输出0
3、是无向图
AC代码
#include <cstdio> #include <cmath> #include <algorithm> #include <cstring> #include <utility> #include <string> #include <iostream> #include <map> #include <set> #include <vector> #include <queue> #include <stack> using namespace std; #define eps 1e-10 #define inf 0x3f3f3f3f #define PI pair<int, int> typedef long long LL; const int maxn = 150 + 5; int vis[maxn], d[maxn], w[maxn][maxn]; map<string, int>Hash; int cur; int get_ID(string &p) { if(!Hash.count(p)) Hash[p] = cur++; return Hash[p]; } struct point{ int d, u; point(){ } point(int d, int u):d(d), u(u) { } bool operator < (const point& p) const { return d > p.d; } }; string s, e; int dijkstra(int n) { int x = get_ID(s), y = get_ID(e); for(int i = 0; i < n; ++i) d[i] = inf; d[x] = 0; memset(vis, 0, sizeof(vis)); priority_queue<point>Q; Q.push(point(0, x)); //将起点加入队列 while(!Q.empty()) { point p = Q.top(); Q.pop(); int u = p.u; if(u == y) return d[y]; if(vis[u]) continue; vis[u] = 1; for(int i = 0; i < n; ++i) { if(d[i] > d[u] + w[u][i]) { //update d[i] = d[u] + w[u][i]; if(d[i] > inf) d[i] = inf; Q.push(point(d[i], i)); } } } return -1; } int main() { int n; while(scanf("%d", &n) == 1 && n != -1) { memset(w, inf, sizeof(w)); Hash.clear(); cur = 0; cin >> s >> e; string x, y; int cost; for(int i = 0; i < n; ++i) { cin >> x >> y >> cost; int u = get_ID(x), v = get_ID(y); w[v][u] = w[u][v] = min(w[u][v], cost); //去重边 } printf("%d\n", dijkstra(Hash.size())); } return 0; }
如有不当之处欢迎指出!
HDU - 2112 HDU Today Dijkstra的更多相关文章
- HDU 2112 HDU Today(Dijkstra)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Time Limit: 15000/5000 MS (Java/Others ...
- hdu 2112 HDU Today
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2112 HDU Today Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的 ...
- HDU 2112 HDU Today (Dijkstra算法)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- hdu 2112 HDU Today(map与dijkstra的结合使用)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- hdu 2112 HDU Today (最短路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目大意:给出起点和终点,然后算出最短的路. 不过有好多细节要注意: (1)起始点和终止点相等的 ...
- hdu 2112 HDU Today 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2112 题目意思:又是求最短路的,不过结合埋字符串来考查. 受之前1004 Let the Balloo ...
- HDU 2112 HDU Today(最短路径+map)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- hdu 2112 HDU Today (floyd算法)
这道题貌似在原来学长给我们的搞的小比赛中出过! 这次又让我遇到,果断拿下! 不过方法很蠢,跑了1000多ms,虽然要求5000ms以内! 题目就是给你一些位置之间的距离,然后再让你求特定的两点之间的距 ...
- HDU 2112 HDU Today 最短路
题目描述: Problem Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这 ...
随机推荐
- MyEclipse安装插件
原文地址:http://www.cnblogs.com/pharen/archive/2012/02/08/2343342.html 本文讲解MyEclipse(MyEclipse10)的三种方法,以 ...
- 《struts2》:指定多个配置文件和默认Action
转载:http://m.blog.csdn.net/article/details?id=51212968
- CGI编程
1简介 .CGI:通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口,服务器和客户端之间的通信,是客户端的浏览器和服务器端的http服务器之间 ...
- 关于主机用户名显示为"-bash-4.1$"
牢记 <1> .(小数点)==> 代表一个任意字符 <2> *(星)====> 重复前面一个字符0到无穷次 1.出现这中情况是因为:用户环境变量的文件没了,通 ...
- [DeeplearningAI笔记]改善深层神经网络_优化算法2.6_2.9Momentum/RMSprop/Adam优化算法
Optimization Algorithms优化算法 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.6 动量梯度下降法(Momentum) 另一种成本函数优化算法,优化速度一般快于标准 ...
- SDP(4):ScalikeJDBC- JDBC-Engine:Updating
在上一篇博文里我们把JDBC-Engine的读取操作部分分离出来进行了讨论,在这篇准备把更新Update部分功能介绍一下.当然,JDBC-Engine的功能是基于ScalikeJDBC的,所有的操作和 ...
- python os模块实用函数
os.sep可以取代操作系统特定的路径分隔符.windows下为 “\\” os.name字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'pos ...
- java异常丢失及异常链
1.Java中异常丢失的情况: 先定义三个异常: public class ExceptionA extends Exception { public ExceptionA(String str) { ...
- 三栏布局,div左右盒子是定宽,中间是自适应
用弹性布局flex: 给父盒子加个display:flex; 给中间盒子设flex=1; /* 弹性盒子布局*/ .wrap{ width: 100%; height: 90px; display: ...
- BZOJ 4276: [ONTAK2015]Bajtman i Okrągły Robin [线段树优化建边]
4276: [ONTAK2015]Bajtman i Okrągły Robin 题意:\(n \le 5000\)个区间\(l,r\le 5000\),每个区间可以选一个点得到val[i]的价值,每 ...