HDU 2066 - 一 个人的旅行(最短路)
来源:互联网 发布:2016安全知识 网络竞赛 编辑:程序博客网 时间:2024/06/05 16:57
AC 代码
#include<stdio.h>#include<iostream>#include<string.h>#define MAXN 1010#define INF 1000000000#define clr(x) memset(x,0,sizeof(x));using namespace std;int Map[MAXN][MAXN],dis[MAXN],End[MAXN];bool flag[MAXN];int temp;void hiti(){ for(int i=0; i<MAXN; i++) for(int j=0 ; j<MAXN; j++) Map[i][j]=INF;}void disjkstra(){ clr(flag); flag[0]=1; int min,t,i,n; n = temp; for(i=0; i<=temp; i++) dis[i]=Map[0][i]; while(--n) { min=INF; for(i=1; i<=temp; i++) if(!flag[i]&&dis[i] < min) { min=dis[i]; t=i; } flag[t]=1; for(i=1; i<=temp; i++) if(!flag[i]&&dis[i]>dis[t]+Map[t][i]) dis[i] = dis[t]+Map[t][i]; }}int main(){ int n,m,l,x,y,z,i; while(cin >> n >> m >> l) { temp=0; hiti(); for(i=1; i<=n; i++) { cin >> x >> y >> z; if(temp<x) temp = x; if(temp<y) temp = y; if(Map[x][y]>z) Map[x][y]=Map[y][x]=z; } for(i=0; i<m; i++) { cin>>x; Map[0][x]=Map[x][0] = 0; } for(i=0; i<l; i++) cin >> End[i]; disjkstra(); int ans = INF; for(i = 0; i < l ; i++) if(dis[End[i]]<ans) ans = dis[End[i]]; cout << ans << endl; } return 0;}
0 0
- HDU 2066 - 一 个人的旅行(最短路)
- HDU-2066 一个人的旅行 最短路
- hdu 2066 一个人的旅行(最短路)
- hdu 2066 一个人的旅行(最短路)
- hdu 2066 一个人的旅行(最短路)
- HDU - 2066- 一个人的旅行【最短路】
- 【hdu 2066】 一个人的旅行 ( 最短路 Dijkstra)
- hdu 2066 一个人的旅行(最短路问题)
- HDU 2066 一个人的旅行(最短路)
- HDU 2066一个人的旅行(dijk最短路)
- HDU-2066 一个人的旅行(图论,Floyd ,最短路)
- HDU 2066-一个人的旅行(最短路Dijkstra)
- HDU 2066(一个人的旅行) SPFA(最短路问题)
- HDU 2066 一个人的旅行(最短路)
- HDU-2066 一个人的旅行(最短路[Floyd])
- HDU---2066-一个人的旅行(最短路)
- HDU 2066 一个人的旅行 (最短路----floyd && dijkstra)
- hdu 2066 一个人的旅行(最短路+SPFA)
- CSV 相关的学习
- joinColumns和inverseJoinColumns的用法
- 一致性哈希算法 应用场景
- 关于二分查找
- MyEclipse工具的使用
- HDU 2066 - 一 个人的旅行(最短路)
- 黑马程序员_Java基础——异常(第1篇)
- JMAIL 80040154 错误
- 九度 题目1490:字符串链接
- Effective C# Item23:避免返回内部类对象的引用
- 命令行进入ftp服务器
- 位图法排序
- mysql_query("set names gb2312")设置客户端字符集
- java中 String s=new String(""); String s="";