hdu 1596 find the safest road(Dijkstra)
第一行:n。n表示城市的个数n<=1000;
接着是一个n*n的矩阵表示两个城市之间的安全系数,(0可以理解为那两个城市之间没有直接的通道)
接着是Q个8600要旅游的路线,每行有两个数字,表示8600所在的城市和要去的城市
其他的输出这两个城市之间的最安全道路的安全系数,保留三位小数。
1 #include<iostream> 2 using namespace std; 3 float map[1010][1010],dis[1010]; 4 int v[1010]; 5 void dijkstra(int s,int n) 6 { 7 int i,j,k; 8 double max; 9 memset(v,0,sizeof(v)); 10 for(i=1;i<=n;i++) 11 dis[i]=map[s][i]; 12 v[s]=1; 13 for(i=2;i<=n;i++) 14 { 15 k=s; 16 max=0; 17 for(j=1;j<=n;j++) 18 if(!v[j]&&max<dis[j]) 19 { 20 max=dis[j]; 21 k=j; 22 } 23 v[k]=1; 24 for(j=1;j<=n;j++) 25 if(!v[j]&&dis[j]<dis[k]*map[k][j]) 26 dis[j]=dis[k]*map[k][j]; 27 } 28 } 29 int main() 30 { 31 int n; 32 while(~scanf("%d",&n)) 33 { 34 int i,j,q,a,b; 35 for(i=1;i<=n;i++) 36 for(j=1;j<=n;j++) 37 scanf("%f",&map[i][j]); 38 scanf("%d",&q); 39 while(q--) 40 { 41 scanf("%d%d",&a,&b); 42 dijkstra(a,n); 43 if(dis[b]<1e-8) 44 printf("What a pity!\n"); 45 else 46 printf("%.3f\n",dis[b]); 47 } 48 } 49 return 0; 50 }
转载于:https://www.cnblogs.com/crazyapple/archive/2012/08/20/2647290.html
hdu 1596 find the safest road(Dijkstra)相关推荐
- 杭电1596find the safest road(spfa)
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- HDU - 2066 一个人的旅行(Dijkstra)
虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景--草儿 ...
- HDU1596find the safest road(floyd)
题目链接 find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- HDU 1596 find the safest road (Floyd)
题目链接 本来对弗洛伊德很没信心,1000个城市,还好,还是过了,最裸的有4000+ms,因为是无向图加了下优化,3000+ms,这个.... #include <stdio.h> #in ...
- hdu 2066 一个人的旅行(dijkstra)
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- Find the safest road(HDU-1596)
Problem Description XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条 ...
- 手撕迪杰斯特拉算法(Dijkstra)及代码(附图解)
文章目录 迪杰斯特拉(Dijkstra)算法 1.算法思想及其步骤 2.代码 2.1 相关声明 2.2 有权图的建立函数定义 2.3 核心算法:迪杰斯特拉 迪杰斯特拉(Dijkstra)算法 引言:我 ...
- 迪克斯特拉(Dijkstra)算法之MATLAB实现
by WC 1.12.2016 1. 迪克斯特拉(Dijkstra)算法 在网上面看了很多的解释,仍没有感觉到有非常通熟易懂的解释,在这里我为大家讲解一下,尽量避免枯燥难懂的数学公式. 狄克斯特拉算法 ...
- 迪杰斯特拉(Dijkstra)算法之两点之间的最短距离问题
1.概述 (1)与弗洛伊德(Floyd)算法一样,迪杰斯特拉(Dijkstra)算法也是一种用于寻找给定的加权图中顶点间最短路径的算法,主要特点是以出发点为中心向外层层扩展(广度优先搜索思想),直到扩 ...
最新文章
- 什么是textRNN?有什么用途?结构是什么样子的?
- 开闭鸿蒙都只为风味情浓,开辟鸿蒙,谁为情种?都只为风月情浓。
- 我在学python-我慌了,周围人都在学python...
- 经典面试题:为什么 ConcurrentHashMap 的读操作不需要加锁?
- 乌班图linux配置yum仓库,Linux系统的仓库配置(yum、epel)与软件安装(wireshark,wget,nginx)...
- 【C语言进阶深度学习记录】二十一 # 和 ## 号操作符的使用与分析
- springcloud 相同服务名_浅谈分布式与微服务
- 云服务器太卡,云服务器解决io过高导致的命令卡顿
- 设计模式-17-迭代器
- matlab打乱矩阵行,matlab 中,怎么让一个矩阵按某一列排列,并且行也跟着变动?...
- Jquery常用操作select篇
- Java 从入门到精通 第16章String类
- 有效删除Win10英语(美式键盘)输入法
- Humanoid(人形)动画概述——动画(Mecanim)系统学习
- 走近网球运动·与棒球相似的体育项目·第一堂棒球课
- ps中基色 混合色 结果色是什么
- ZOJ-3939 The Lucky Week
- MCE | RNA 逆转录小提示
- 【Oracle】更新数据表字段值
- fmdb(FMDatabase) 数据库总结