一个人的旅行 hdu 2066
来源:互联网 发布:微信群淘宝客机器人 编辑:程序博客网 时间:2024/04/30 12:58
/**************** * Author:fisty * Data:2014-10-19 * hdu 2066 * 最短路 ***************/#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define MAX_N 1111#define INF 0x3f3f3f3fint T,S,D;int map[MAX_N][MAX_N];int d[MAX_N];bool used[MAX_N];int start[MAX_N],end[MAX_N];int n;int dijkstra(int s){ fill(d, d + MAX_N, INF); fill(used, used + MAX_N, false); d[s] = 0; while(true){ int v = -1; for(int u = 0;u <= n; u++){ if(!used[u] && (v == -1 || d[u] < d[v])) v = u; } if(v == -1) break; used[v] = true; for(int u = 0;u <= n; u++){ d[u] = min(d[u] , d[v] + map[v][u]); } } int ans = INF; for(int i = 0;i < D; i++) ans = min(ans, d[end[i]]); return ans;}int main(){ int u,v,t; while(scanf("%d%d%d", &T, &S, &D) != EOF){ for(int i = 0;i < 1111;i++){ for(int j = 0;j < 1111; j++){ map[i][j] = INF; } map[i][i] = 0; } n = 0; for(int i = 0;i < T; i++){ scanf("%d%d%d", &u, &v, &t); n = max(max(u, n), v); map[u][v] = map[v][u] = min(map[u][v],t); } for(int i = 0;i < S; i++){ scanf("%d", &start[i]); map[0][start[i]] = map[start[i]][0] = min(map[0][start[i]], 0); } for(int i = D-1;i >= 0; i--){ scanf("%d", &end[i]); } int ans = dijkstra(0); printf("%d\n", ans); } return 0;}
0 0
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU-2066 一个人的旅行
- Hdu-2066 一个人的旅行
- HDU 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- hdu 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066 一个人的旅行
- hdu 2066 一个人的旅行
- HDU 2066 一个人的旅行
- HDU 2066 一个人的旅行
- HDU 2066 一个人的旅行
- hdu 2066(一个人的旅行)
- HDOJ题目1505 City Game(动态规划)
- Java 学习 第三章 Java核心-继承与多态
- ANDROID L——Material Design详解(视图和阴影)
- struts2的优点
- poj1961--Period(KMP求最小循环节)
- 一个人的旅行 hdu 2066
- 使用ASP.NET MVC 4 Bootstrap Layout Template(VS2012)
- bluetooth LE HOGP profile的代码大致实现流程(HOGP+GATT)
- pat 1006
- Swift基础--ijkplayer编译
- struts2如何完成文件的上传
- Xcode及Mac快捷键大全
- ContentProvider(内容提供者)用法详解
- 【Spring.Framework】依赖管理, Logging