HDU 1596 find the safest road (最短路)
find the safest road
Total Submission(s): 6973 Accepted Submission(s): 2469
第一行:n。n表示城市的个数n<=1000;
接着是一个n*n的矩阵表示两个城市之间的安全系数,(0能够理解为那两个城市之间没有直接的通道)
接着是Q个8600要旅游的路线,每行有两个数字,表示8600所在的城市和要去的城市
其它的输出这两个城市之间的最安全道路的安全系数,保留三位小数。
题意非常明确了,还是一些小细节的问题,模板打多了毁带来一些思维僵化,
所以找一些模板题但又有些变通的题最好了。
代码: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 (最短路)相关推荐
- hdu 1596 find the safest road(Dijkstra)
Problem Description XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条 ...
- HDU 1596 find the safest road (Floyd)
题目链接 本来对弗洛伊德很没信心,1000个城市,还好,还是过了,最裸的有4000+ms,因为是无向图加了下优化,3000+ms,这个.... #include <stdio.h> #in ...
- HDU1596 find the safest road(最短路变形,Dijkstra)
题目: find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- 杭电1596 find the safest road
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- find the safest road——最短路
find the safest road Problem Description XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 ...
- hdu1596 find the safest road(dijkstra求最短路)
find the safest road Time ...
- HDU1596find the safest road(floyd)
题目链接 find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- 杭电1596find the safest road(spfa)
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- 杭电1596find the safest road
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- 【HDU - 2112】 HDU Today(dijkstra单源最短路 + map转换)
题干: HDU Today Time Limit : 15000/5000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Tota ...
最新文章
- python中文什么意思-python是什么
- Lintcode 408 解题思路及c++代码
- LeetCode 142——环形链表 II
- 「第三篇」全国电子设计竞赛,这些你必须知道的比赛细节,文末附上近十年电赛题目下载...
- .net 常见异常及其翻译
- 实体与属性间的划分原则
- 【MySQL】OPTIMIZE TABLE 的碎片整理功能
- springboot 手动提交事务_面试官你都工作3年了,也做过5个项目了,怎么连事务机制都不会...
- 高德地图工具箱里有个“连接汽车”功能具体怎么用?
- html5标签之表单元素
- 【图像增强】基于matlab局部对比度增强的CLAHE算法直方图增强【含Matlab源码 1341期】
- java图片旋转90度_Java实现图片内容无损任意角度旋转
- Java实现zip文件压缩与解压缩--附完整代码
- PlayYou 捉弄人软件(手机控制电脑)
- Qt多线程之QtConcurrent
- 复变函数 —— 0. 连接复数与三角函数的欧拉公式
- 左耳听风 第二十一周
- 长调用与短调用 调用门
- BP综述:自闭症中基于功能连接体的预测模型
- “http://”与“http%3A%2F%2F”,转义与解析