find the safest road

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

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
题意:可能题的意思没说太清楚,我再解释下。给你个图,每个点都有一个安全系数,现在问的是走哪条路安全系数最大。安全系数算法:假如你从1到2再到3那么3的安全系数就是1的安全系数*2的安全系数。
思路:还是最短路,只不过略微变化了一些。不再是权值相加而是相乘。
ac代码:
#include<stdio.h>
#include<string.h>
#include<queue>
#define INF 0x3f3f3f3f
#define M 1001*1001
#define N 1001
using namespace std;
int vis[N],head[N],n,m,edgenum;
double dis[N];
struct node{int from,to;double cost;int next;
}edge[M];
void init(){edgenum=0;memset(head,-1,sizeof(head));
}
void add(int u,int v,double w){node E={u,v,w,head[u]};edge[edgenum]=E;head[u]=edgenum++;
}
void spfa(int beg){queue<int>q;int i;for(i=1;i<=1000;i++)//因为求的是概率最大的所以初始化为0; dis[i]=0;memset(vis,0,sizeof(vis));dis[beg]=1;//自己到自身的安全系数是1; vis[beg]=1;q.push(beg);while(!q.empty()){int u=q.front();q.pop();vis[u]=0;for(i=head[u];i!=-1;i=edge[i].next){int v=edge[i].to;if(dis[v]<dis[u]*edge[i].cost){//题意要求是求安全系数最大的。满足条件就更新。 dis[v]=dis[u]*edge[i].cost;if(!vis[v]){vis[v]=1;q.push(v);}}}}
}
int main(){while(scanf("%d",&n)!=EOF){init();int i,j;for(i=1;i<=n;i++)for(j=1;j<=n;j++){double cost;scanf("%lf",&cost);if(cost==0)continue;add(i,j,cost);}int num;scanf("%d",&num);while(num--){int a,b;scanf("%d%d",&a,&b);spfa(a);if(dis[b]==0)printf("What a pity!\n");elseprintf("%.3lf\n",dis[b]);}}return 0;
}

HDOJ--1596--find the safest road相关推荐

  1. 杭电1596 find the safest road

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

  2. hdu 1596 find the safest road(Dijkstra)

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

  3. HDU 1596 find the safest road (Floyd)

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

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

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

  5. 杭电1596find the safest road

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

  6. find the safest road——最短路

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

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

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

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

    find the safest road                                                                           Time ...

  9. HDU1596find the safest road(floyd)

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

  10. Find the safest road(HDU-1596)

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

最新文章

  1. ZBrush中如何做不同图案的遮罩
  2. 计算字符串相似度算法—Levenshtein
  3. php内核分析-fpm和df的问题思考
  4. TDSQL 全时态数据库系统-理念与愿景
  5. 通用无线设备对码软件_电动车上的无线电池管理系统wBMS
  6. ASP.NET Core IP 请求频率限制
  7. 数据湖 多维数据集_按汇总分组/多维数据集
  8. 笔记本电脑如何保养_电脑温度一高就“翻脸”,电脑小白该如何解决?学会少花冤枉钱...
  9. 前端开发者必会的英语单词
  10. 【数据分析实战】北京租房数据统计分析
  11. Contest2609 - 高级语言程序实践--第8次作业--计信A2107-2113
  12. 黄教头第六周作业 一个基础的反射型xss
  13. 大趋势:科技赋能产业
  14. Anthony_tester(博客链接)
  15. 以色列量子计算软件公司,与欧洲机构合作开发薛定谔猫状态纠错技术
  16. Windows下运行XServer,XServer和XClient
  17. h3c 模拟器 HCL 2.1.2 win10安装,vbox hyper-v vmware 兼容
  18. hive常用函数之七字符串函数
  19. NIST PQC候选方案 SIKE 以及 Rainbow签名 破解
  20. 你想要知道的Python日期格式化知识都在这

热门文章

  1. resnet18实现cifar10分类
  2. 重构:改善既有代码的设计 精彩书评二
  3. 在酷热的就业天气寻找几丝凉意
  4. PGM:不完备数据的参数估计
  5. Scipy教程 - 距离计算库scipy.spatial.distance
  6. c 语言程序设计形考任务一,C语言程序设计形考任务.doc
  7. linux 装gcc组件,linux下安装redis组件报错-gcc报错
  8. 力扣-203 移除链表元素
  9. Kotlin基础学习第5章—表达式
  10. Android ViewPager 滑动监听事件