find the safest road

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6973    Accepted Submission(s): 2469
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
Author
ailyanlu
Source
HDU 2007-Spring Programming Contest - Warm Up (1)
Recommend
8600   |   We have carefully selected several similar problems for you:  1217 1598 1142 1690 1385

题意非常明确了,还是一些小细节的问题,模板打多了毁带来一些思维僵化,
所以找一些模板题但又有些变通的题最好了。

代码:1671MS

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
#define M 1050
int n,m;
double map[M][M],dis[M];
void Dijkstra(int x,int y)
{bool v[M]={0};int i,j;for(i=1;i<=n;i++) dis[i]=(i==x?1:0);for(i=1;i<=n;i++){int k;double Min=0;  //在这里WA了一发,模板打多了就仅仅会int了。for(j=1;j<=n;j++) if(!v[j] && dis[j]>Min) Min=dis[k=j];v[k]=1;for(j=1;j<=n;j++) dis[j]=max(dis[j],dis[k]*map[k][j]);}if(dis[y]) printf("%.3lf\n",dis[y]);else printf("What a pity!\n");
}int main()
{int i,j;int a,b,c;while(scanf("%d",&n)!=EOF && n){memset(map,0,sizeof(map));for(i=1;i<=n;i++)for(j=1;j<=n;j++){scanf("%lf",&map[i][j]);}//题目给的是邻接矩阵,所以不要初始化了。scanf("%d",&m);for(i=1;i<=m;i++){scanf("%d%d",&a,&b);Dijkstra(a,b);}}return 0;
}

我个人觉得用Floyd算法应该也能够,就是时限的问题了。
这题应该要用SPFA算法去做,只是时限放的非常宽,所以就变成模板题了。
事实上精品题和模板题差距就在时限和思想双方面。

转载于:https://www.cnblogs.com/mengfanrong/p/4051479.html

HDU 1596 find the safest road (最短路)相关推荐

  1. hdu 1596 find the safest road(Dijkstra)

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

  2. HDU 1596 find the safest road (Floyd)

    题目链接 本来对弗洛伊德很没信心,1000个城市,还好,还是过了,最裸的有4000+ms,因为是无向图加了下优化,3000+ms,这个.... #include <stdio.h> #in ...

  3. HDU1596 find the safest road(最短路变形,Dijkstra)

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

  4. 杭电1596 find the safest road

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

  5. find the safest road——最短路

    find the safest road Problem Description XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 ...

  6. hdu1596 find the safest road(dijkstra求最短路)

    find the safest road                                                                           Time ...

  7. HDU1596find the safest road(floyd)

    题目链接 find the safest road Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Ja ...

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

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

  9. 杭电1596find the safest road

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

  10. 【HDU - 2112】 HDU Today(dijkstra单源最短路 + map转换)

    题干: HDU Today Time Limit : 15000/5000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Tota ...

最新文章

  1. python中文什么意思-python是什么
  2. Lintcode 408 解题思路及c++代码
  3. LeetCode 142——环形链表 II
  4. 「第三篇」全国电子设计竞赛,这些你必须知道的比赛细节,文末附上近十年电赛题目下载...
  5. .net 常见异常及其翻译
  6. 实体与属性间的划分原则
  7. 【MySQL】OPTIMIZE TABLE 的碎片整理功能
  8. springboot 手动提交事务_面试官你都工作3年了,也做过5个项目了,怎么连事务机制都不会...
  9. 高德地图工具箱里有个“连接汽车”功能具体怎么用?
  10. html5标签之表单元素
  11. 【图像增强】基于matlab局部对比度增强的CLAHE算法直方图增强【含Matlab源码 1341期】
  12. java图片旋转90度_Java实现图片内容无损任意角度旋转
  13. Java实现zip文件压缩与解压缩--附完整代码
  14. PlayYou 捉弄人软件(手机控制电脑)
  15. Qt多线程之QtConcurrent
  16. 复变函数 —— 0. 连接复数与三角函数的欧拉公式
  17. 左耳听风 第二十一周
  18. 长调用与短调用 调用门
  19. BP综述:自闭症中基于功能连接体的预测模型
  20. “http://”与“http%3A%2F%2F”,转义与解析

热门文章

  1. DocumentFragment文档碎片(高效批量更新多个节点)
  2. arcgis api for js实现克里金插值渲染图--不依赖GP服务
  3. iOS可视化动态绘制连通图(Swift版)
  4. 使用 Chrome Timeline 来优化页面性能 1
  5. 过滤器 拦截器 controller 页面 的执行顺序
  6. 5月25 python3.6—pymouse—pyhook_3安装问题
  7. 8 对象、类与面向对象编程
  8. C语言volatile关键字
  9. C++--第8课 - 类中的封装
  10. 【原】Web Polygraph 安装