hdu 1874 畅通工程续(求最短距离,dijkstra,floyd)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1874
/************************************************************************/ /* hdu 畅通工程续dijkstra求起始点到目标点最短距离题目大意:求这些村子中从起始位置到目标点的最短距离解题思路:dijkstra算法,求图中两个点的最短距离, dijkstra算法不同于prim算法,prim算法是求虽小生成树, 不断地把点最近的点加入到集合中;而dijkstra算法是求源点到目标点的最短距离。 */ /************************************************************************/#include <stdio.h> #include <string.h> #include <algorithm>#define MAX 0xfffffff const int N = 201;int dj[N],map[N][N],vis[N]; int n,m,x,y,len,i,j;void DJ(int start,int end) {int min,k;int t = n;int cur = start;for(i=0;i<n;dj[i++]=MAX); dj[start] = 0;while(1){min = MAX;vis[cur] = 1;for(i = 0; i < n; i++){if(vis[i]==1)continue;if(dj[i] > map[i][cur] + dj[cur])//dj[i] = map[i][cur] + dj[cur];if(min>dj[i]){min = dj[i];k = i;}}cur = k;if(cur == end)break;if(min == MAX)break;}printf("%d\n",dj[end]<MAX?dj[end]:-1); }int main() {while(scanf("%d%d",&n,&m)!= EOF){memset(vis,0,sizeof(vis));for (i = 0; i < n; i++)for (j = 0; j < n; j++){map[i][j] = (i==j?0:MAX);}for (i = 1; i <= m; i++){scanf("%d%d%d",&x,&y,&len);map[x][y] = map[y][x] = (map[x][y]<len?map[x][y]:len);}scanf("%d%d",&x,&y);DJ(x,y);}return 0; }
/************************************************************************/ /* hdu 畅通工程续floyd 求起始点到目标点最短距离题目大意:求这些村子中从起始位置到目标点的最短距离解题思路:floyd 算法,求图中两个点的最短距离floyd算法就是在整个图中扫描,看点 i 到 j 的距离和(点 i 到点 k 的距离)+(点 k 到点 j 的距离)两者哪个较小,把小的存入map[i][j]中即可。 */ /************************************************************************/#include <stdio.h> #include <string.h> #include <algorithm>#define MIN(a,b) a<b?a:b #define MAX 0xfffffff const int N = 201;int map[N][N]; int n,m,x,y,len,i,j;void floyd(int start,int end) {int k;for (k = 0; k < n; k++){for (i = 0; i < n; i++)for (j = 0; j < n; j++)map[i][j] = MIN(map[i][j],map[i][k]+map[k][j]);}printf("%d\n",map[start][end]<MAX?map[start][end]:-1); }int main() {while(scanf("%d%d",&n,&m)!= EOF){for (i = 0; i < n; i++)for (j = 0; j < n; j++){map[i][j] = (i==j?0:MAX);}for (i = 1; i <= m; i++){scanf("%d%d%d",&x,&y,&len);map[x][y] = map[y][x] = (map[x][y]<len?map[x][y]:len);}scanf("%d%d",&x,&y);floyd(x,y);}return 0; }
hdu 1874 畅通工程续(求最短距离,dijkstra,floyd)相关推荐
- hdu 1874 畅通工程续(模板题 spfa floyd)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1874 spfa 模板 1 #include<iostream> 2 #include<s ...
- 杭电 hdu 1874 畅通工程续
第二次 /* THE PROGRAM IS MADE BY PYY */ /*------------------------------------------------------------- ...
- HDU 1874 畅通工程续 (Dijkstra , Floyd , SPFA, Bellman_Ford 四种算法)
畅通工程续 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了很多年的畅通工程计划后,终于修 ...
- HDOJ 1874 HDU 1874 畅通工程续 ACM 1874 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1874 ...
- HDU 1874 畅通工程续
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- HDU 1874 畅通工程续 Floyd
畅通工程续 http://acm.hdu.edu.cn/showproblem.php?pid=1874 Time Limit: 3000/1000 MS (Java/Others) Memory L ...
- HDU 1874 畅通工程续 2008浙大研究生复试热身赛(2)
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- HDU 1874 畅通工程续 最短路
畅通工程续 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 某 ...
- hdu 1874畅通工程续(基础Floyd)
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
最新文章
- 【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题
- 自律到极致-人生才精致:第10期
- spark应用程序_Sparklens:Spark应用程序优化工具
- 【转】WebServices:WSDL的结构分析
- 入门 | 一文看懂卷积神经网络
- 命令02-pandas命令
- Linux下openSSL安装并颁发证书
- Kinect 开发 —— 面部追踪
- 新疆计算机在线准考证打印,新疆2019年计算机准考证打印时间
- 计算机硬件及组成原理pdf百度云,计算机组成原理整理版本.pdf
- smarty 模板php,php的smarty模板发动机
- 绘制自己的人际关系图_错综复杂的人际关系,一张图谱一目了然
- 【哲理】你的上限是什么?如何打破上限?-莫安迪
- arcgis怎么压缩tif文件_使用gdal压缩tif文件
- 每个人小时候都有一个小小的梦
- C语言五子棋评分函数,五子棋评分表算法
- 手机被偷后,让小偷欲哭无泪的高招
- 未来科技业界的10大风口
- goland使用fabric-go-sdk连接虚拟机fabric网络(保姆级教学)
- MATLAB调用USB摄像头的过程记录
热门文章
- Angular JS 增删改查(弹框修改)
- python numpy库安装winerror5_求问安装numpy+mkl报错FileNotFoundError: [Errno 2] No such fi
- python 传参数 传引用_Python 函数参数 传引用还是传值
- knn的python代码_详细的的KNN代码——python实现
- web前端能拿多少钱?非科班的能转到web前端吗?
- 如何创建一个Mybatis程序,实现对数据库的简单查询?
- java web程序设计教程范立锋 最后的图书馆理系统_JavaWeb程序设计 习题参考答案(第7章)...
- 中专计算机应用完整教学计划,中职生教学计划
- php mysql 排序规则_使用PHP的MySQL最好的排序规则是什么?
- mysql where非常规用法_MySQL where 条件的这个坑你碰到过没