题目链接

find the safest road

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 14712    Accepted Submission(s): 5154

Problem Description
XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边 ,现在8600 想出去旅游,面对这这么多的路,他想找一条最安全的路。但是8600 的数学不好,想请你帮忙 ^_^
Input
输入包括多个测试实例,每个实例包括:
第一行:n。n表示城市的个数n<=1000;
接着是一个n*n的矩阵表示两个城市之间的安全系数,(0可以理解为那两个城市之间没有直接的通道)
接着是Q个8600要旅游的路线,每行有两个数字,表示8600所在的城市和要去的城市
Output
如果86无法达到他的目的地,输出"What a pity!",
其他的输出这两个城市之间的最安全道路的安全系数,保留三位小数。
Sample Input
  
3 1 0.5 0.5 0.5 1 0.4 0.5 0.4 1 3 1 2 2 3 1 3
Sample Output
  
0.500 0.400 0.500

解题思路 :由于输入时有矩阵出现,果断floyd直接就出答案。

源代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#define N 1005
int n;
double pet[N][N];
void floyd()///三重for循环暴力找找最短路。
{for(int k=0;k<n;k++)///中点for(int i=0;i<n;i++)///起始点for(int j=0;j<n;j++)///终点{if(pet[i][j]<pet[i][k]*pet[k][j]){pet[i][j]=pet[i][k]*pet[k][j];}}
}
int main()
{while(scanf("%d",&n)!=EOF){for(int i=0;i<n;i++)for(int j=0;j<n;j++)scanf("%lf",&pet[i][j]);floyd();int t,a,b;scanf("%d",&t);for(int i=0;i<t;i++){scanf("%d%d",&a,&b);if(!pet[a-1][b-1])printf("What a pity!\n");elseprintf("%.3lf\n",pet[a-1][b-1]);}}return 0;
}

HDU1596find the safest road(floyd)相关推荐

  1. 杭电1596find the safest road(spfa)

    find the safest road Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  2. Find the safest road(HDU-1596)

    Problem Description XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条 ...

  3. hdu 1596 find the safest road(Dijkstra)

    Problem Description XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条 ...

  4. 弗洛伊德算法(Floyd)简介

    弗洛伊德算法(Floyd)简介 Floyd算法适用于解决求最短路径问题,相比于Digkstra算法思路更加简单,更容易理解,但是效率会明显低很多,可以作为初步学习的一种方法. 目录 弗洛伊德算法(Fl ...

  5. 【算法】弗洛伊德(Floyd)算法

    这个算法主要要弄懂三个循环的顺序关系. 弗洛伊德(Floyd)算法过程: 1.用D[v][w]记录每一对顶点的最短距离. 2.依次扫描每一个点,并以其为基点再遍历所有每一对顶点D[][]的值,看看是否 ...

  6. 七、最短路径——弗洛伊德(Floyd)算法

    为了能讲明白弗洛伊德(Floyd)算法的精妙所在,我们先来看最简单的案例.下图是一个最简单的3个顶点连通网图. 我们先定义两个二维数组D[3][3]和P[3][3],D代表顶点到顶点的最短路径权值和的 ...

  7. 【数据结构】图—弗洛伊德(Floyd)算法

    前言 上文介绍了迪杰斯特拉(Dijkstra)算法,计算网图的某个源点到其余各个顶点的最短路径问题(边权值为非负值),本文介绍另一个求最短路径的算法--弗洛伊德算法,它是计算所有顶点到所有顶点的最短路 ...

  8. 弗洛伊德(Floyd)算法之两点之间的最短距离问题

    1.概述 (1)与迪杰斯特拉(Dijkstra)算法一样,弗洛伊德(Floyd)算法也是一种用于寻找给定的加权图中顶点间最短路径的算法,该算法 名称以创始人之一.1978 年图灵奖获得者.斯坦福大学计 ...

  9. 最短路径之弗洛伊德算法(Floyd)——动态规划

    弗洛伊德算法(Floyd)主要针对多源最短路径,且可以解决路径中有负权的情况(不包含负权回路),但是迪杰斯特拉算法只能解决正权值的单源最短路径(可以迭代多次求多源). 1.弗洛伊德算法的基本思想 弗洛 ...

最新文章

  1. Chromebook开发者模式Linux,Chromebook 的开发者模式和开发者版本有什么区别?
  2. 这4种钱没有也要借,不能等
  3. .NET开发过程中的全文索引使用技巧之Solr
  4. 设置行间距_word打印技巧:几个节省纸张的打印设置方法
  5. spl_autoload_register函数
  6. 【架构】研究谷歌和亚马逊的微服务案例,我们能学习到的经验
  7. java jlist组件_Java中Jlist的Swing组件
  8. 今天向你们分享一个表白代码(I LOVE YOU)
  9. LM2596电源降压调整器(150KHz,3A)020
  10. matlab试算求解二元二次方程,matlab 求一个二元二次方程组的解
  11. 视觉组学习内容:Zhang-Suen骨架提取算法
  12. 前端小demo:星星闪烁
  13. Excel表格×××号码如何一键提取性别、年龄、出生年月
  14. 2021最新大厂Java面试真题解析
  15. 11 计算机组成原理第七章 输入/输出系统 I/O系统基本概念 外部设备
  16. 北京市社会保险网上服务平台
  17. 《口算大作战 概念版》功能规格说明书
  18. win10计算机盘符如何,WIN10修改盘符怎么更改
  19. Windows系统设置自动开机
  20. 【夏目鬼鬼分享】centos7安装rabbitmq

热门文章

  1. iOS 程序内语言切换 -- 中英文切换
  2. 如何教老板做事,还能让老板说“多谢指教”?
  3. 尚能饭否|技术越来越新,我对老朋友jQuery还是一如既往热爱
  4. 比较舒服的Windows颜色设置
  5. windows 11 设置环境变量
  6. 目标检测第三篇:基于SSD的目标检测算法
  7. 生信(二)反向互补序列
  8. NuttX 安装脚本
  9. Angular5学习笔记 - 创建服务
  10. 春天多吃这菜,全家整年不生病!一定要多吃!