博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 2112最短路的dijkstra实现
阅读量:6040 次
发布时间:2019-06-20

本文共 1929 字,大约阅读时间需要 6 分钟。

hot3.png

能够改变传统数字表示位置的模式用文字来描述城市求最短路

code:

#include 
#include "string.h"#define MAX 160#define INT_MAX 99999999char s[160][160]; //保存站点 int map[160][160];int Dijkstra(int from,int to,int n) // DIJ + 邻接矩阵 { int dis[MAX]; bool used[MAX]; memset(used,false,sizeof(used)); for(int i=0; i<=n; i++) dis[i] = INT_MAX; dis[from] = 0; used[from] = true; int now = from; for(int i=0; i
dis[now] + map[now][k] ) dis[k] = dis[now] + map[now][k]; int min = INT_MAX; for(int k=0; k<=n; k++) if( !used[k] && dis[k] < min ) min = dis[now = k]; used[now] = true; } return dis[to]; }int main(int argc, char *argv[]){ int n; while(scanf("%d",&n)) { if(n==-1) { break; } //-------------map初始化------------- int i2,j2; for(i2=0;i2<160;i2++) { for(j2=0;j2<160;j2++) { map[i2][j2]=INT_MAX; if(i2==j2) { map[i2][j2]==0; } } } //--------------------------- char start[105],end[105]; scanf("%s%s",start,end); strcpy(s[0],start); strcpy(s[1],end); int j=2; int time; int i,k; for(k=0;k
time) //确实双向时间 { map[p][q]=time; map[q][p]=time; } } if(strcmp(start,end)==0) { printf("0\n"); }else{ int result=INT_MAX; result=Dijkstra(0,1,j); if(result==INT_MAX ){ printf("-1\n"); }else printf("%d\n",result); } } return 0;}

 

转载于:https://my.oschina.net/hlslml77/blog/176853

你可能感兴趣的文章
Spring Boot 要点--启动类和热部署
查看>>
Maven配置及本地仓库设置
查看>>
PAT L2-001 紧急救援 —— (多参数最短路)
查看>>
JDK(java se development kit)的构成
查看>>
数据库的备份与恢复
查看>>
Android示例程序剖析之记事本(一)
查看>>
为什么英雄难过美人关?
查看>>
poj 3009 Curling 2.0
查看>>
Tomcat7安装配置 for Ubuntu
查看>>
Linux:命令执行控制&&与||
查看>>
麻球繁衍
查看>>
FreeRTOS栈溢出检查
查看>>
linux下,远程连接mysql
查看>>
浅谈js闭包(closure)
查看>>
【regex】POSIX标准正则表达式库
查看>>
Xcode编辑器的技巧与诀窍
查看>>
String、StringBuffer与StringBuilder之间区别
查看>>
工作第十三周:身体掏空,精神饱满
查看>>
Linux 内核--任务0的运行(切换到用户模式)move_to_user_mode
查看>>
ios扩展机制objc_setAssociatedObject,objc_getAssociatedObject
查看>>