HDU Today (最短路径问题)
来源:互联网 发布:淘宝卖家店名 编辑:程序博客网 时间:2024/05/17 21:52
代码:
#include <string>#include <map>#include <iostream>using namespace std;#define INF 0x3fffffff#define MAXN 10017#define M 32int mat[MAXN][MAXN] ,n;#define MAX 150map<string,int>m;void init(){for(int i = 0; i <= MAX; i++){for(int j = 0; j <= MAX; j++){if(i == j)mat[i][j] = 0;elsemat[i][j] = INF;}}m.clear();}int dijkstra (int s,int f){//s为起点, f:为终点int dis[MAXN];//记录到任意点的最短距离int mark[MAXN];//记录被选中的结点 int i,j,k = 0; for(i = 0; i <= MAX; i++) {mark[i] = 0;//初始化所有结点,每个结点都没有被选中 dis[i] = INF; } mark[s] = 1;//start结点被选中 dis[s] = 0;//将start结点的的距离设置为0 int min ;//设置最短的距离。 for(i = 1; i <= MAX; i++) {k = 1; min = INF; for(j = 1; j <= MAX; j++) { if(mark[j] == 0 && dis[j] < min)//未被选中的结点中,距离最短的被选中 { min = dis[j] ; k = j; } } mark[k] = 1;//标记为被选中 for(j = 1; j <= MAX; j++) { if( mark[j] == 0 && (dis[j] > (dis[k] + mat[k][j])))//修改剩余结点的最短距离 { dis[j] = dis[k] + mat[k][j]; } } } return dis[f]; } int main(){int i;char s[M], e[M], a[M], b[M];int v;while(~scanf("%d",&n)){init();if(n == -1)break;scanf("%s%s",s,e); m[s] = 1;if(!m[e])m[e] = 2;int c = 3;for(i = 0; i < n; i++){scanf("%s%s%d",a,b,&v);if(!m[a])m[a] = c++;if(!m[b])m[b] = c++;if(v < mat[m[a]][m[b]]){mat[m[a]][m[b]] = v;mat[m[b]][m[a]] = v;}}int ans = dijkstra(m[s],m[e]);if(ans == INF)printf("-1\n");elseprintf("%d\n",ans);}return 0;}
0 0
- HDU Today (最短路径问题)
- HDU2112 HDU Today(最短路径)
- HDU Today (最短路径+map)
- hdu 题目2122 HDU Today (最短路径,Dijkstra)
- [最短路径] HDU 2112 - HDU Today
- HDOJ 题目2112 HDU Today(最短路径)
- HDOJ 题目2112 HDU Today(最短路径)
- 杭电2112HDU Today(map 最短路径)
- hdoj--2112 HDU Today(最短路径)
- HDU Today 【最短路径】+【构造map】
- HDU Today Dijkstra 最短路径
- 【最短路径-Floyd】hdu 2112 HDU Today
- HDU 2112— HDU Today,最短路径算法,Dijkstra
- HDU 2112 HDU Today 【最短路径 dijkstra & floyed & SPFA 】
- HDU 2112.HDU Today【最短路径(Dijsktra算法+字符串)】【4月17】
- 最短路径问题 HDU
- 最短路径——Floyd算法HDU Today(hdu2112)
- 最短路径——Dijkstra算法HDU Today(hdu2112)
- 堆和栈的区别(主要从内存分配方面来说)
- Dijkstra(迪杰斯特拉)算法分析与实现(C++)
- shell 下$代表的意义
- strlen和sizeof的区别
- Oracle 客户端下载
- HDU Today (最短路径问题)
- neHe OpenGL lession 6
- ImageView 的缩放 scaleType
- hdu 1308 What Day Is It?
- 士兵杀敌(三)
- 删除子串
- 小度路由madplay和mpd本地音乐播放器
- 乖哈法国国际卡
- 如何关注好友的csdn博客