当前位置: 首页 > news >正文

大型医院设计网站建设网站怎么添加统计代码

大型医院设计网站建设,网站怎么添加统计代码,电子商务的工作岗位有哪些?,清华大学绿色大学建设网站适用情景Floyd算法适用于多源汇最短路,也就是他问你比如说从3号点到6号点的最短路距离,比如说从7号点到20号点的最短路距离,而不是单源最短路(从1号点到n号点的最短路距离)。在这个算法当中允许负权边的存在。但在求最…

适用情景

  1. Floyd算法适用于多源汇最短路,也就是他问你比如说从3号点到6号点的最短路距离,比如说从7号点到20号点的最短路距离,而不是单源最短路(从1号点到n号点的最短路距离)。在这个算法当中允许负权边的存在。但在求最短路距离当中(包括其他算法也一样)是不能够出现负环的,因为这样最短路距离可能变到负无穷去了


时间复杂度

  1. 三重无脑循环,显然O(N^3)。


算法解释

  1. 首先,对于Floyd算法来说,对于图的存储必须要用邻接矩阵来存,不能用邻接表。然后对于邻接矩阵,一开始当然得初始化,这边必须得注意:由于是图,这个矩阵无论是行还是列,有效位都是从一开始。

int dist[N][N];  //N表示图中点的个数+1
  1. 然后Floyd算法是允许这个图当中存在负权边,但是不能出现负环因为在最短路问题当中的话,一旦出现负环,最短路可能变成负无穷)。然后需要对dist数组初始化,这边再提一句:我们现在已经是默认图当中没有负环,好那么现在如果说存在自环的话,肯定是正的,在最短路当中那就不予考虑,于是在初始化的过程当中,如果说i等于j,直接就是0,其他的话就初始化成正无穷,为什么要正无穷?想想就知道了,等会儿我肯定需要min操作

for (int i=1;i<=n;i++)
{for (int j=1;j<=n;j++){if (i==j){dist[i][j]=0;}else{dist[i][j]=0x3f3f3f3f;}}
}
  1. 然后当往这个邻接矩阵当中去输入一条一条图当中的边的时候,由于我们现在是最短路问题,因此我们只需要取小的就可以了,然后如果是自环的话,所以我们默认是没有负环的,因此取小后就是0

while(m--)
{scanf("%d %d %d",&a,&b,&c);dist[a][b]=MIN(dist[a][b],c);
}
  1. 然后接下来就是执行Floyd算法,其实就是三重循环,外循环k从1到n,第二层循环i从1到n,第三层循环j从1到n。然后每一层循环的话就如下比较一下,至于原理的话,这个是与动态规划有关,像我现在的话也掌握不了,先把算法的步骤先记牢吧

for (int k=1;k<=n;k++)
{for (int i=1;i<=n;i++){for (int j=1;j<=n;j++){dist[i][j]=MIN(dist[i][j],dist[i][k]+dist[k][j]);}}
}
  1. 然后当这三重循环结束之后,原先dist数组是用来存边的,现在他已经像孙悟空变身一样,变成了从i到j的最短距离了。当然也有可能的情况就是从i到j的话是走不到的,这时候还谈个屁最短路啊,那如何去判断走不到的这种情况呢?由于是允许存在负权边的情况,因此当在更新的时候有可能会把这个无穷大的值稍微更新了小了一些,因此不能直接dist[ i ][ j ] 等于 0x3f3f3f3f

while(k--)
{scanf("%d %d",&a,&b);if(dist[a][b]>0x3f3f3f3f/2){printf("impossible\n");}else{printf("%d\n",dist[a][b]);}
}

例题

来源:AcWing

854. Floyd求最短路 - AcWing题库

#include <stdio.h>
#define N 210
#define MIN(a,b) ((a)<(b)?(a):(b))
int dist[N][N];
int main()
{int n,m,k,a,b,c;scanf("%d %d %d",&n,&m,&k);for (int i=1;i<=n;i++){for (int j=1;j<=n;j++){if (i==j){dist[i][j]=0;}else{dist[i][j]=0x3f3f3f3f;}}}while(m--){scanf("%d %d %d",&a,&b,&c);dist[a][b]=MIN(dist[a][b],c);}for (int k=1;k<=n;k++){for (int i=1;i<=n;i++){for (int j=1;j<=n;j++){dist[i][j]=MIN(dist[i][j],dist[i][k]+dist[k][j]);}}}while(k--){scanf("%d %d",&a,&b);if(dist[a][b]>0x3f3f3f3f/2){printf("impossible\n");}else{printf("%d\n",dist[a][b]);}}return 0;
}
http://www.yayakq.cn/news/420848/

相关文章:

  • 营销网站一般包括哪些内容盐城网站建设方案
  • 小男孩和女人做的网站网站开发职业类别代码
  • 网站可以免费看齐家网装修
  • 网站开发的职业决策做网站代理需要办什么执照
  • 可以用什么做网站登录页面如何提网站建设需求
  • 在线购物网站建设应用市场app下载安装到手机
  • 网站推广关键词工具网络知识培训
  • 网站建设的简洁性建站系统破解源码
  • 网站源码站大兴网站开发网站建设报价
  • 北京网站建设 性价比微信小程序登录授权
  • 茶叶网站建设动漫设计与制作培训学院
  • 网站设计客户需求qq邮箱登录
  • 赤峰建设厅官方网站国外做免费的视频网站有哪些
  • 英文介绍做美食视频网站广州天河区怎么样
  • 如何利用微信进行企业网站推广做网站的动态图片
  • 最牛免费网站建设在线教育
  • 东莞如何建网站费用哪个国家的绘本网站做的好
  • 招标公司网站建设方案在线定制手机壳
  • 网站频道规划仿站能被百度收录吗
  • 优建网站wordpress代码精简
  • 网站建设手机银行限额wordpress qode
  • 凡科可以做社交网站吗官方网站建设思路
  • 阿里巴巴国际站坑人wordpress播放优酷视频
  • 贵阳做网站公司织梦商城网站模板
  • 各大网站热搜榜排名企业查询系统官网河北
  • 泸州城建设档案管网站网站让百度收录
  • 国内4大现货交易所桂林seo代排名
  • 郑州网站建设君捷刚备案的域名如何做网站
  • 珠海做网站优化的公司网站有哪些内容
  • 山东建设厅官方网站网站备案幕布要求