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
  1. 3
  2. 1 0.5 0.5
  3. 0.5 1 0.4
  4. 0.5 0.4 1
  5. 3
  6. 1 2
  7. 2 3
  8. 1 3
 
Sample Output
  1. 0.500
  2. 0.400
  3. 0.500
 

  1. #include<queue>
  2. #include<stack>
  3. #include<vector>
  4. #include<math.h>
  5. #include<stdio.h>
  6. #include<numeric>//STL数值算法头文件
  7. #include<stdlib.h>
  8. #include<string.h>
  9. #include<iostream>
  10. #include<algorithm>
  11. #include<functional>//模板类头文件
  12. using namespace std;
  13.  
  14. const long long INF=1e9+7;
  15. const int maxn=1010;
  16.  
  17. int n,m,st,ed;
  18. double tu[maxn][maxn],degeree[maxn];
  19. int vis[maxn];
  20.  
  21. void dijkstra(int st,int ed)
  22. {
  23. int i,j;
  24. for(i=1; i<=n; i++)
  25. {
  26. degeree[i]=tu[st][i];
  27. vis[i]=0;
  28. }
  29. vis[st]=1;
  30. bool flag=0;
  31. double maxx;
  32. for(i=1; i<n; i++)
  33. {
  34. int k;
  35. maxx=0;
  36. for(j=1; j<=n; j++)
  37. {
  38. if(!vis[j]&°eree[j]>maxx)
  39. {
  40. k=j;
  41. maxx=degeree[j];
  42. }
  43. }
  44. if(fabs(maxx)<10e-6)
  45. {
  46. flag=1;
  47. break;
  48. }
  49. vis[k]=1;
  50. for(j=1; j<=n; j++)
  51. {
  52. if(!vis[j]&&tu[k][j]>0eree[j]<tu[k][j]*degeree[k])
  53. {
  54. degeree[j]=degeree[k]*tu[k][j];
  55. }
  56. }
  57. }
  58. if(flag) printf("What a pity!\n");
  59. else printf("%.3lf\n",degeree[ed]);
  60. }
  61.  
  62. int main()
  63. {
  64. int i,j;
  65. while(~scanf("%d",&n))
  66. {
  67. for(i=1; i<=n; i++)
  68. for(j=1; j<=n; j++)
  69. scanf("%lf",&tu[i][j]);
  70. scanf("%d",&m);
  71. while(m--)
  72. {
  73. scanf("%d %d",&st,&ed);
  74. dijkstra(st,ed);
  75. }
  76. }
  77. return 0;
  78. }
 

hdu 1596 find the safest road (dijkstra)的更多相关文章

  1. hdu 1596 find the safest road (变形SP && dij+heap)

    Problem - 1596 变形最短路问题,给出邻接矩阵,要求求出给定点对间安全率最大值. 这题可以用dijkstra+heap来做.对于每一个查询,做一次dij即可. 代码如下: #include ...

  2. HDU.1596 find the safest road (Floyd)

    HDU.1596 find the safest road (Floyd) 题意分析 与普通的最短路不太相同,本题有些许的变化. 1. 要找到由i到j最安全的路,故在求解的时候要保证mp[i][j]尽 ...

  3. HDU 1596 find the safest road (最短路)

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

  4. hdu 1596 find the safest road (最短路径)

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

  5. 杭电 1596 find the safest road (最短路)

    http://acm.hdu.edu.cn/showproblem.php?pid=1596 这道题目与杭电2544最短路的思想是一样的.仅仅只是是把+改成了*,输入输出有些不一样而已. find t ...

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

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

  7. hdu 1596 find the safest road

    http://acm.hdu.edu.cn/showproblem.php?pid=1596 #include <cstdio> #include <cstring> #inc ...

  8. hdu 1596 find the safest road(最短路,模版题)

    题目 这是用Dijsktra做的,稍加改动就好,1000ms..好水.. #define _CRT_SECURE_NO_WARNINGS #include<string.h> #inclu ...

  9. HDU 1596 find the safest road(SPFA)

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

随机推荐

  1. [php]require&require_once&include&include_once的用法与区别

    1.require和include是php引入php文件的两种方式,使用格式如下: require(include) 文件名; require(include) 变量(此变量存储的是文件名); 2.区 ...

  2. Linux命令之uptime

    这是什么 uptime用来查看系统已经启动了多长时间了. 它显示的信息和w命令的头(第一行)是一样一样的. 举个栗子 举一个实际的应用场景: 比如发现服务器上的某些没有加入开机启动的服务挂了一片,这个 ...

  3. Ubuntu 下 CodeBlocks 修改用户自定义颜色主题 及 更新CodeBlocks到最新版本

    Code::Blocks默认的白色编辑器界面看久了眼睛很累, 所以想换成dark的主题, 眼睛会舒服些. 1. 安装好codeblocks后, 先运行一次, 关闭, 这时程序会提示你是否要保存defa ...

  4. C#里面中将字符串转为变量名

    public partial class Form1 : Form { string str = "spp"; public string spp = "very goo ...

  5. 1-编程基础及Python环境部署

    目录 1 编程基础 1.1 基本概念 1.2 语言分类 1.3 高级语言的发展 2 程序 3 python的语言介绍 4 Python的解释器 5 Python版本区别 6 Python安装 6.1 ...

  6. 作为一个新手的Oracle(DBA)学习笔记【转】

    一.Oracle的使用 1).启动 *DQL:数据查询语言 *DML:数据操作语言 *DDL:数据定义语言 DCL:数据控制语言 TPL:事务处理语言 CCL:指针控制语言 1.登录 Win+R—cm ...

  7. MySQL创建相同表和数据命令

    创建和表departments结构和数据一样的表departments_t mysql> create table departments_t like departments; Query O ...

  8. Android 反编译神器jadx的使用

    一.前言 今天介绍一个非常好用的反编译的工具 jadx .jadx 的功能非常的强大,对我而言,基本上满足日常反编译需求. jadx 优点: 图形化的界面. 拖拽式的操作. 反编译输出 Java 代码 ...

  9. Tutorial 1: Serialization

    转载自:http://www.django-rest-framework.org/tutorial/1-serialization/#tutorial-1-serialization Tutorial ...

  10. 苹果receipt样例

    使用[[NSBundle mainBundle] appStoreReceiptURL]方式获取receipt (iOS7及以上获取receipt的方法) 普通付费 "latest_rece ...