博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1596 find the safest road
阅读量:5222 次
发布时间:2019-06-14

本文共 1375 字,大约阅读时间需要 4 分钟。

题目链接

题目分类:dijkstra算法

错误点:不知道点的范围

代码

#include
using namespace std;#define INF 0x3f3f3f3fconst int maxv=1100;double cost[maxv][maxv];double d[maxv];bool vis[maxv];int n,m;int st,en;int path[1100];void dijkstra(int n,int st){ int i,j,pre; double minn; memset(vis,0,sizeof(vis)); vis[st]=1; for(i=1;i<=n;i++) { d[i]=cost[st][i]; path[i]=st; } path[st]=-1; pre=st; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(vis[j]==0&&d[pre]*cost[pre][j]>d[j]) d[j]=d[pre]*cost[pre][j],path[j]=pre; } minn=-1000000000.00; for(j=1;j<=n;j++) { if(vis[j]==0&&d[j]>minn) minn=d[j],pre=j; } vis[pre]=1; } return ;}int main(){ while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { scanf("%lf",&cost[i][j]); } } scanf("%d",&m); while(m--) { scanf("%d %d",&st,&en); //printf("aJDS\n"); dijkstra(n,st); /*for(int i=1;i<=n;i++) { printf("%.10lf\n",d[i]); }*/ if(d[en]==0) printf("What a pity!\n"); else printf("%.3lf\n",d[en]); } } return 0;}

 

转载于:https://www.cnblogs.com/gaoss/p/4922036.html

你可能感兴趣的文章
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>
vue:axios二次封装,接口统一存放
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>
图片加载失败显示默认图片占位符
查看>>
【★】浅谈计算机与随机数
查看>>
《代码阅读方法与实现》阅读笔记一
查看>>
解决 sublime text3 运行python文件无法input的问题
查看>>
javascript面相对象编程,封装与继承
查看>>
Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable
查看>>
Java中正则表达式的使用
查看>>
算法之搜索篇
查看>>
新的开始
查看>>
java Facade模式
查看>>